Example #1
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());
    }
  }