Example #1
0
    @Override
    public void updateScene(int xpos, int ypos) {
      // TODO Auto-generated method stub
      //
      //			if ((mevent.getID() == MouseEvent.MOUSE_DRAGGED) &&
      //					!mevent.isAltDown() && mevent.isMetaDown()) {
      //
      ////			if (mevent.getID() == MouseEvent.MOUSE_DRAGGED) {
      //					int x = mevent.getX();
      //					int y = mevent.getY();
      //
      //					int dx = x - x_last;
      //					int dy = y - y_last;
      //
      //					center.x += dx * 0.02;
      //					center.y -= dy * 0.02;
      //
      //					x_last = x;
      //					y_last = y;
      //					updateView();
      //			}
      //			else if (mevent.getID() == MouseEvent.MOUSE_PRESSED) {
      //				x_last = mevent	.getX();
      //				y_last = mevent.getY();
      //			}
      //
      //

      if (!mevent.isMetaDown() && !mevent.isAltDown()) {
        BranchGroup bg = null;
        Shape3D s = null;
        pickCanvas.setFlags(
            PickInfo.NODE | PickInfo.SCENEGRAPHPATH | PickInfo.CLOSEST_INTERSECTION_POINT);
        pickCanvas.setShapeLocation(xpos, ypos);

        PickInfo pickInfo = pickCanvas.pickClosest();
        if (pickInfo != null) {
          //					if (drawing instanceof Mesh) {
          //						Point3d p = pickInfo.getClosestIntersectionPoint();
          //
          //						Mesh m = (Mesh)drawing;
          //						MeshPoint mp = m.find(p.x, p.y, p.z);
          //						if (mp != null) mp.select();
          //
          //						m.setLineColor(Color.GREEN);
          //						m.setLineWidth(5);
          ////						createSceneGraph(drawing);
          //
          ////						view.detach();
          //						draw(drawing);
          ////						root.addChild(view);
          //						return;
          //					}

          System.out.println(pickInfo.getClosestIntersectionPoint());

          bg = (BranchGroup) pickCanvas.getNode(pickInfo, PickTool.TYPE_BRANCH_GROUP);
          //					s = (Shape3D) pickCanvas.getNode(pickInfo, PickTool.TYPE_SHAPE3D);

          if (bg != null) {
            System.out.println("Shape " + bg.getName() + " selected");
            if (bg.getUserData() != null) {
              VisualShape sh = (VisualShape) bg.getUserData();
              Mesh m = sh.getMesh();
              if (m != null) {
                Point3d p3d = pickInfo.getClosestIntersectionPoint();
                m.selectNearestPoint(p3d.x, p3d.y, p3d.z);
                m.createTextLabels();
                System.out.println("Result = " + m.getResult(p3d.x, p3d.y, p3d.z));
                draw(drawModel);
              } else {
                sh.select();
                //								drawing.meshShape(sh);
                //								draw(drawing);
              }

              //							Visible v = (Visible) bg.getUserData();
              //							v.select();
            }
          }

          //					if (s != null) {
          //						System.out.println("Shape "+s.getName()+" selected");
          //						if (s.getUserData() != null) {
          //							Visible v = (Visible) s.getUserData();
          //							v.select();
          //						}
          //
          //					}

        }
      }
    }