Beispiel #1
0
  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

  }
Beispiel #2
0
  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();
  }
Beispiel #3
0
  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());
      }
    }
  }
Beispiel #6
0
  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);
  }
Beispiel #7
0
 public void load_URL(String id) {
   plug_in.load_URL(id);
 }
Beispiel #8
0
 public void init_scene() {
   scene_graph.ClearScene();
   plug_in.init_scene();
 }
Beispiel #9
0
 public void update_xxx() {
   plug_in.set_timestep(0);
 }