Esempio n. 1
0
  private void yawCamera(double angle) {
    Vector3d backToZero;
    Point3d center;
    if (choosingPivotPoint && pivotPointAdjustor.getPivotPointBG() != null) {
      center = pivotPointAdjustor.getPivotPointPos();
    } else {
      center = getObjCenter();
    }
    backToZero = new Vector3d(center);
    backToZero.negate();
    Transform3D back = new Transform3D();
    back.set(backToZero);

    Transform3D rotate = new Transform3D();
    rotate.set(new AxisAngle4d(up, angle));

    Transform3D toOri = new Transform3D();
    toOri.set(new Vector3d(center));

    // creating composite transform, reversing the order
    Transform3D fullRotate = new Transform3D(toOri);
    fullRotate.mul(rotate);
    fullRotate.mul(back);

    fullRotate.transform(cameraPos);
    fullRotate.transform(cameraFocus);
  }
Esempio n. 2
0
  @Override
  public void mouseClicked(MouseEvent e) {
    if (measurer != null && measurementVisible) {
      Marker marker = measurer.getMarker();
      Point3d markerPos = marker.getMarkerPos();

      // if there's any selected node, unselect it
      if (selectedNode != null) {
        ((Mark) selectedNode.getParent().getParent().getParent()).unSelect();
        selectedNode = null;
      }

      if (hoveredNode != null && hoveredNode.getParent().getParent().getParent() instanceof Mark) {

        // select the clicked one
        selectedNode = hoveredNode;
        ((Mark) selectedNode.getParent().getParent().getParent()).select();
      } // click to add a mark dot
      else if (measuring) {
        Mark currentMark; // could be the last mark, or a new one
        try {
          currentMark = measurer.getMarks().getLast();
          if (!currentMark.isFristPointPlaced()) { // last mark completed
            Mark newMark = measurer.createMark(); // create new one
            newMark.createFirstPoint(markerPos);
            marker.initMarkerLine(markerPos);
          } else { // use last mark
            currentMark.createSecondPoint(markerPos);
            currentMark.createText();
            currentMark.createMarkLine();
            marker.removeMarkerLine();
          }
        } catch (NoSuchElementException ex) { // no mark found
          currentMark = measurer.createMark();
          currentMark.createFirstPoint(markerPos);
          marker.initMarkerLine(markerPos);
        }
      }
    }

    if (choosingPivotPoint) {
      pivotPointAdjustor.putPivotPoint(pivotPointAdjustor.getPlacer().getPos());
    }
  }
Esempio n. 3
0
  @Override
  public void mouseMoved(MouseEvent e) {
    if (e.getX() > 0
        && e.getX() < this.getWidth()
        && e.getY() > 0
        && e.getY() < this.getHeight()
        && (canting.getCor() != null)
        && measuring
        && measurementVisible) {
      MyPickResult result = getMouseIntersection(e, true);
      Point3d pos = result.getPoint();
      if (pos != null) {
        if (measurer == null) {
          measurer = new Measurer(pos);
          kainTG.addChild(measurer);
          initSnapList();
        } else {
          measurer.getMarker().updatePos(pos);
          measurer.getMarker().setVisible(true);
        }
        hoveredNode = result.getNode();
      } else {
        hoveredNode = null;
      }

      // if hovers any mark, highlight it
      if (hoveredNode != null && hoveredNode.getParent().getParent().getParent() instanceof Mark) {

        // before highlight, unhighlight previous mark
        if (lastHoveredNode != null) {
          if (selectedNode != null
              && lastHoveredNode.getParent().getParent().getParent()
                  == selectedNode.getParent().getParent().getParent()) // if it is selected
          {
            ((Mark) selectedNode.getParent().getParent().getParent()).select();
          } else {
            ((Mark) lastHoveredNode.getParent().getParent().getParent()).unHighlight();
          }
          lastHoveredNode = null;
        }

        // highlight
        ((Mark) hoveredNode.getParent().getParent().getParent()).highlight();
        lastHoveredNode = hoveredNode;

      } else {
        // unhighlight previous mark
        if (lastHoveredNode != null) {
          if (selectedNode != null
              && lastHoveredNode.getParent().getParent().getParent()
                  == selectedNode.getParent().getParent().getParent()) // if it is selected
          {
            ((Mark) selectedNode.getParent().getParent().getParent()).select();
          } else {
            ((Mark) lastHoveredNode.getParent().getParent().getParent()).unHighlight();
          }
          lastHoveredNode = null;
        }
      }
    }

    if (e.getX() > 0
        && e.getX() < this.getWidth()
        && e.getY() > 0
        && e.getY() < this.getHeight()
        && (canting.getCor() != null)
        && choosingPivotPoint) {
      MyPickResult result = getMouseIntersection2(e);
      Point3d pos = result.getPoint();
      if (pos != null) {
        if (pivotPointAdjustor == null) {
          pivotPointAdjustor = new PivotPointAdjustor(pos);
          kainTG.addChild(pivotPointAdjustor);
        } else {
          pivotPointAdjustor.getPlacer().updatePos(pos);
        }
      }
    }
  }