@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); } };
static public Point2D transformCoordinates(double x, double y, Node from, Node to) { if (from == to || from == null || to == null) { return new Point2D(x, y); } // from -> scene Point2D fromInSceneCoordinates = new Point2D( (x) * from.localToSceneTransformProperty().get().getMxx(), (y) * from.localToSceneTransformProperty().get().getMyy()); // scene -> to return new Point2D( (fromInSceneCoordinates.getX() + from.localToSceneTransformProperty().get().getTx()) / to.getLocalToSceneTransform().getMxx(), (fromInSceneCoordinates.getY() + from.localToSceneTransformProperty().get().getTy()) / to.getLocalToSceneTransform().getMyy()); }
@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); }; }
Transform self = billBoardNode.getLocalToSceneTransform(), oth = other.getLocalToSceneTransform(); Bounds b; double cX, cY, cZ;