scene.setOnMousePressed(new EventHandler<MouseEvent>() { @Override public void handle(MouseEvent me) { PickResult pr = me.getPickResult(); int faceId = pr.getIntersectedFace(); if (faceId != -1) { Point3i p = tetrahedronMesh.getPointFromFace(faceId); } } });
private void handleMouseClicked(MouseEvent event) { Node node = event.getPickResult().getIntersectedNode(); // Accept clicks only on node cells, and not on empty spaces of the TreeView if (node instanceof Text || (node instanceof TreeCell && ((TreeCell) node).getText() != null)) { String name = (String) ((TreeItem)treeView.getSelectionModel().getSelectedItem()).getValue(); System.out.println("Node click: " + name); } }
@Override public void handle(MouseEvent event) { if (!event.isAltDown()) return; Node intersectedNode = event.getPickResult().getIntersectedNode(); if (intersectedNode == null) return; Integer regionId = nodeToRegionId.get(intersectedNode); while (regionId == null && intersectedNode.getParent() != null) { intersectedNode = intersectedNode.getParent(); regionId = nodeToRegionId.get(intersectedNode); } if (regionId != null) { System.out.println("Region picked: " + regionId); for (Entry<Node, Integer> nodeAndId : nodeToRegionId.entrySet()) { if (nodeAndId.getValue() != regionId) nodeAndId.getKey().setVisible(false); } } } });
@Override public void handle(MouseEvent event) { if (!event.isAltDown()) return; Node intersectedNode = event.getPickResult().getIntersectedNode(); if (intersectedNode == null) return; Integer regionId = nodeToRegionId.get(intersectedNode); while (regionId == null && intersectedNode.getParent() != null) { intersectedNode = intersectedNode.getParent(); regionId = nodeToRegionId.get(intersectedNode); } if (regionId != null) { System.out.println("Region picked: " + regionId); currentRegionIdProperty.set(regionId); for (Entry<Node, Integer> nodeAndId : nodeToRegionId.entrySet()) { if (nodeAndId.getValue() != regionId) nodeAndId.getKey().setVisible(false); } } } });
public TextHoverEvent(MouseEvent source, List<HoverTarget> hoverTargets) { super(HOVER, source.getSceneX(), source.getSceneY(), source.getScreenX(), source.getScreenY(), source.getButton(), source.getClickCount(), source.isShiftDown(), source.isControlDown(), source.isAltDown(), source.isMetaDown(), source.isPrimaryButtonDown(), source.isMiddleButtonDown(), source.isSecondaryButtonDown(), source.isSynthesized(), source.isPopupTrigger(), source.isStillSincePress(), source.getPickResult()); this.hoverTargets = Collections.unmodifiableList(hoverTargets); Optional<Range<Integer>> range = this.hoverTargets.stream().map(t->t.textRange).findFirst(); // TODO remove me this.tokenText = null; this.offsetTokenStart = range.isPresent() ? range.get().lowerEndpoint() : 0;; this.offsetTokenEnd = range.isPresent() ? range.get().upperEndpoint() : 0;; this.offset = range.isPresent() ? range.get().lowerEndpoint() : 0; }
@Override public void handle(MouseEvent event) { PickResult pickResult = event.getPickResult(); Node intersectedNode = pickResult.getIntersectedNode(); if (intersectedNode == null || intersectedNode instanceof SubScene) return; javafx.geometry.Point3D localPoint = pickResult.getIntersectedPoint(); javafx.geometry.Point3D scenePoint = intersectedNode.getLocalToSceneTransform().transform(localPoint); Point3D interception = new Point3D(); interception.setX(scenePoint.getX()); interception.setY(scenePoint.getY()); interception.setZ(scenePoint.getZ()); latestInterception.set(interception); } };
@Override public void handle(MouseEvent event) { PickResult pickResult = event.getPickResult(); Node intersectedNode = pickResult.getIntersectedNode(); if (intersectedNode == null || intersectedNode instanceof SubScene) return; javafx.geometry.Point3D localPoint = pickResult.getIntersectedPoint(); javafx.geometry.Point3D scenePoint = intersectedNode.getLocalToSceneTransform().transform(localPoint); Point3D interception = new Point3D(); interception.setX(scenePoint.getX()); interception.setY(scenePoint.getY()); interception.setZ(scenePoint.getZ()); latestInterception.set(interception); } };
/** * Registers event filters for windows. * * @param window the window */ public void registerWindowEventFilters(Window window) { window.addEventFilter(MouseEvent.ANY, event -> { if (event.isShiftDown() && event.isControlDown() && !event.isMetaDown() && !event.isAltDown() && event.isPopupTrigger()) { PickResult pickResult = event.getPickResult(); if (pickResult != null) { Node node = pickResult.getIntersectedNode(); if (node != null) { LOGGER.info(() -> "\n" + dumpComponentHierarchy(node)); } } } }); }
@Override public void handle(MouseEvent event) { if (event.getButton() != MouseButton.PRIMARY) return; if (condition.test(event) && event.isStillSincePress() && event.getEventType() == MouseEvent.MOUSE_CLICKED) { PickResult pickResult = event.getPickResult(); Node intersectedNode = pickResult.getIntersectedNode(); if (intersectedNode == null || intersectedNode instanceof SubScene) return; javafx.geometry.Point3D localPoint = pickResult.getIntersectedPoint(); javafx.geometry.Point3D scenePoint = intersectedNode.getLocalToSceneTransform().transform(localPoint); focusPointTranslation.setX(scenePoint.getX()); focusPointTranslation.setY(scenePoint.getY()); focusPointTranslation.setZ(scenePoint.getZ()); } } };
@Override public void handle(MouseEvent event) { if (event.getButton() != MouseButton.PRIMARY) return; if (condition.test(event) && event.isStillSincePress() && event.getEventType() == MouseEvent.MOUSE_CLICKED) { PickResult pickResult = event.getPickResult(); Node intersectedNode = pickResult.getIntersectedNode(); if (intersectedNode == null || intersectedNode instanceof SubScene) return; Point3D localPoint = pickResult.getIntersectedPoint(); Point3D scenePoint = intersectedNode.getLocalToSceneTransform().transform(localPoint); focusPointTranslation.setX(scenePoint.getX()); focusPointTranslation.setY(scenePoint.getY()); focusPointTranslation.setZ(scenePoint.getZ()); } } };
public StartGoalOrientationEditor(Messager messager, SubScene subScene) { this.messager = messager; this.subScene = subScene; startEditModeEnabled = messager.createInput(FootstepPlannerMessagerAPI.StartOrientationEditModeEnabledTopic, false); goalEditModeEnabled = messager.createInput(FootstepPlannerMessagerAPI.GoalOrientationEditModeEnabledTopic, false); startPositionReference = messager.createInput(FootstepPlannerMessagerAPI.StartPositionTopic); goalPositionReference = messager.createInput(FootstepPlannerMessagerAPI.GoalPositionTopic); rayCastInterceptor = (event) -> { PickResult pickResult = event.getPickResult(); Node intersectedNode = pickResult.getIntersectedNode(); if (intersectedNode == null || intersectedNode instanceof SubScene) return; javafx.geometry.Point3D localPoint = pickResult.getIntersectedPoint(); javafx.geometry.Point3D scenePoint = intersectedNode.getLocalToSceneTransform().transform(localPoint); Point3D interception = new Point3D(); interception.setX(scenePoint.getX()); interception.setY(scenePoint.getY()); interception.setZ(scenePoint.getZ()); latestInterception.set(interception); }; leftClickInterceptor = (event) -> { if (event.getButton() != MouseButton.PRIMARY) return; if (event.isStillSincePress() && event.getEventType() == MouseEvent.MOUSE_CLICKED) orientationValidated.set(true); }; }
/** * Create a new text position event * * @param event * the source mouse event * @param offset * the offset in the text (might be -1 to indicate no valid * region was found) */ public TextPositionEvent(MouseEvent event, int offset) { super(convert(event.getEventType()), event.getSceneX(), event.getSceneY(), event.getScreenX(), event.getScreenY(), event.getButton(), event.getClickCount(), event.isShiftDown(), event.isControlDown(), event.isAltDown(), event.isMetaDown(), event.isPrimaryButtonDown(), event.isMiddleButtonDown(), event.isSecondaryButtonDown(), event.isSynthesized(), event.isPopupTrigger(), event.isStillSincePress(), event.getPickResult()); this.offset = offset; }
/** * Create a new hover event from the original mouse event * * @param event * the event * @param offsetTokenStart * the start offset from the token hovering (might be -1 to * indicate no valid region was found) * @param offsetTokenEnd * the end offset from the token hovering (might be -1 to * indicate no valid region was found) * @param offset * the offset in the text (might be -1 to indicate no valid * region was found) * @param tokenText * the token text */ public TextHoverEvent(MouseEvent event, int offsetTokenStart, int offsetTokenEnd, int offset, String tokenText) { super(HOVER, event.getSceneX(), event.getSceneY(), event.getScreenX(), event.getScreenY(), event.getButton(), event.getClickCount(), event.isShiftDown(), event.isControlDown(), event.isAltDown(), event.isMetaDown(), event.isPrimaryButtonDown(), event.isMiddleButtonDown(), event.isSecondaryButtonDown(), event.isSynthesized(), event.isPopupTrigger(), event.isStillSincePress(), event.getPickResult()); this.offsetTokenStart = offsetTokenStart; this.offsetTokenEnd = offsetTokenEnd; this.tokenText = tokenText; this.offset = offset; this.hoverTargets = null; }