public void replace_scene(String scene_desc) { String clean_desc; int crt = 0; int pos; if (scene_desc == null) { System.err.println("\nreplace_scene() scene_desc = null\n"); return; } int lng = scene_desc.length(); // user_interface.addInfo("\n scene_desc length="); // user_interface.addInfo(lng); // user_interface.addInfo("\n---" + scene_desc.substring(0,5) + "---\n"); // user_interface.addInfo("\n===" + scene_desc.substring(lng-6) + "===\n"); plug_in.replaceScene(scene_desc); // user_interface.addInfo("!\n End of replace\n"); scene_desc = null; // scene = null; // Runtime.getRuntime().gc(); // force immediate gc }
public void new_scene(String content) { int pos, begin_pos; String vrml_camera; vrml_camera = null; begin_pos = content.indexOf("DEF World"); if (begin_pos > 0) // ViewPoint message present { pos = content.indexOf('}'); vrml_camera = content.substring(begin_pos, pos + 1); // content = content.substring(pos+1); } replace_scene(content); if (vrml_camera != null) plug_in.set_viewpoint(vrml_camera); plug_in.bind_view(); }
public void start() { plug_in = new PlugIn(); plug_in.init(); scene_graph = new SceneGraph(); scene_graph.init(); www_conn = new WWWConnection(); www_conn.init(); update_users(); set_dynamic_usr(); // if(hostsrv != null) user_interface.printInfo(hostsrv); // user_interface.addInfo(http_port); }
public void run() { if (debug) System.err.println("PIrun, sourceFolder: " + sourceFolder + ", sName: " + sName); PlugInChannelMap picm = new PlugInChannelMap(); plugin = new PlugIn(); try { plugin.OpenRBNBConnection(rbnbServer, sName); sink = new Sink(); sink.OpenRBNBConnection(rbnbServer, sinkName); } catch (Exception e) { System.err.println("Error on connect: " + e); System.exit(0); // RBNBProcess.exit(0); } if (preRegister) { try { System.err.println("pre-registering channels for source: " + sName); picm.Add("..."); regPicm = handleRegistration(picm); // plugin.Register(picm); // pre-register System.err.println("pre-register done: " + sName); } catch (Exception se) { System.err.println("Oops, exception on preRegister: " + se); } } // process is to wait for request, get data from sink, convert data, send response, repeat while (true) { try { if (debug) System.err.println("waiting on fetch..."); picm = plugin.Fetch(-1); // block until request arrives if (debug) System.err.println("request picm: " + picm); if (picm.NumberOfChannels() == 0) { System.err.println("oops, no channels in request"); continue; } if (picm.GetRequestReference().equals("registration")) { if (debug) System.err.println("registration request!"); plugin.Flush(handleRegistration(picm)); continue; } else { double tget = picm.GetRequestStart(); double tdur = picm.GetRequestDuration(); String tmode = picm.GetRequestReference(); CTmap ctmap = PI2CTmap(picm); ctmap = ctreader.getDataMap(ctmap, sourceFolder, tget, tdur, tmode); picm = CT2PImap(picm, ctmap, tget, tdur, tmode); if (debug) System.err.println("Flush picm: " + picm + ", nframe: " + ctmap.size()); if (picm == null) System.err.println("no channels!"); else plugin.Flush(picm); } } catch (Exception e) { System.err.println("oops, exception: " + e + ", picm: " + picm); e.printStackTrace(); try { Thread.sleep(1000); picm.PutDataAsString(0, "error: " + e); plugin.Flush(picm); } catch (Exception ee) { } ; // no busy loop // System.exit(0); // no infinite loops } } }
private void loadPlugIns(WorkbenchProperties props) { PlugInContext pc = context.createPlugInContext(); // List<String> classNames = props.getPlugInClassNames(); Map<String, Map<String, String>> pluginSettings = props.getSettings(new String[] {WorkbenchProperties.KEY_PLUGIN}); int i = 0; for (String className : pluginSettings.keySet()) { // System.out.println(i++ + "/"+ className); String initSetting = pluginSettings.get(className).get(WorkbenchProperties.ATTR_INITIALIZE); if (initSetting instanceof String && initSetting.equals(WorkbenchProperties.ATTR_VALUE_FALSE)) continue; monitor.report(LOADING + " " + className); Class plugInClass = null; try { long start = secondsSince(0); plugInClass = Class.forName(className); PlugIn plugIn = (PlugIn) plugInClass.newInstance(); plugIn.initialize(pc); // get plugin's menu settings Map<String, Map> menuSettings = props.getSettings( new String[] { WorkbenchProperties.KEY_PLUGIN, className, WorkbenchProperties.KEY_MENUS }); // interpret menu settings for (Map.Entry<String, Map> entry : menuSettings.entrySet()) { String menuKey = entry.getKey(); if (pc.getFeatureInstaller().fetchMenuForKey(menuKey) == null) continue; // install me to menu? String installSetting = props.getSetting( new String[] { WorkbenchProperties.KEY_PLUGIN, className, WorkbenchProperties.KEY_MENUS, menuKey, WorkbenchProperties.ATTR_INSTALL }); // String orderSetting = props.getSetting(new String[] { // WorkbenchProperties.KEY_PLUGIN, className, // WorkbenchProperties.KEY_MENUS, // menuKey, // WorkbenchProperties.ATTR_ORDERID}); // log (order) info // context // .getWorkbench() // .getFrame() // .log( // "install " + className + " to " + menuKey + " = " // + installSetting + " with orderid = " + orderSetting); // install, or not if (installSetting.equals(WorkbenchProperties.ATTR_VALUE_TRUE)) pc.getFeatureInstaller().addMenuPlugin(menuKey, plugIn); } // register shortcuts of plugins AbstractPlugIn.registerShortcuts(plugIn); context .getWorkbench() .getFrame() .log("Loading " + className + " took " + secondsSinceString(start) + "s"); } catch (Throwable e) { context.getErrorHandler().handleThrowable(e); context.getWorkbench().getFrame().log(className + " " + NOT_INITIALIZED, this.getClass()); } } }
public void set_viewpoint(String view) { String position; String[] position_el; String orientation; String[] orientation_el; String fieldOfView; int begin_pos, pos, i; Float tmp_f; float[] pos_val = null; float[] or_val = null; float fv_val = -1; // user_interface.addInfo(view); begin_pos = view.indexOf("position"); if (begin_pos > 0) { position_el = new String[4]; pos_val = new float[3]; position = view.substring(begin_pos); begin_pos = 0; // user_interface.addInfo("\n position_el: "); pos = position.indexOf('\t', begin_pos); // position_el[0] = position.substring(begin_pos,pos); // user_interface.addInfo(position_el[0]); // user_interface.addInfo("|"); begin_pos = pos + 1; for (i = 0; i < 3; i++) { pos = position.indexOf(" ", begin_pos); position_el[i] = position.substring(begin_pos, pos); tmp_f = Float.valueOf(position_el[i]); pos_val[i] = tmp_f.floatValue(); // user_interface.addInfo(pos_val[i]); // user_interface.addInfo("|"); begin_pos = pos + 1; } } begin_pos = view.indexOf("orientation"); if (begin_pos > 0) { orientation_el = new String[5]; or_val = new float[4]; orientation = view.substring(begin_pos); begin_pos = 0; // user_interface.addInfo("\n orientation_el: "); pos = orientation.indexOf('\t', begin_pos); // orientation_el[0] = orientation.substring(begin_pos,pos); // user_interface.addInfo(orientation_el[0]); // user_interface.addInfo("|"); begin_pos = pos + 1; for (i = 0; i < 3; i++) { pos = orientation.indexOf(" ", begin_pos); orientation_el[i] = orientation.substring(begin_pos, pos); tmp_f = Float.valueOf(orientation_el[i]); or_val[i] = tmp_f.floatValue(); // user_interface.addInfo(or_val[i]); // user_interface.addInfo("|"); begin_pos = pos + 1; } pos = orientation.indexOf(" ", begin_pos + 1); orientation_el[3] = orientation.substring(begin_pos, pos); tmp_f = Float.valueOf(orientation_el[3]); or_val[3] = tmp_f.floatValue(); // user_interface.addInfo(or_val[3]); // user_interface.addInfo("|"); begin_pos = pos + 1; } begin_pos = view.indexOf("fieldOf"); if (begin_pos > 0) { fieldOfView = view.substring(begin_pos); begin_pos = fieldOfView.indexOf(" "); pos = fieldOfView.indexOf(" ", begin_pos + 1); tmp_f = Float.valueOf(fieldOfView.substring(begin_pos, pos)); fv_val = tmp_f.floatValue(); // user_interface.addInfo("\nfieldOfView = "); // user_interface.addInfo(fv_val); // user_interface.addInfo("|\n"); } // user_interface.addInfo("\n======================\n"); plug_in.set_viewpoint(pos_val, or_val, fv_val); }
public void load_URL(String id) { plug_in.load_URL(id); }
public void init_scene() { scene_graph.ClearScene(); plug_in.init_scene(); }
public void update_xxx() { plug_in.set_timestep(0); }