--- old/modules/graphics/src/main/java/com/sun/javafx/scene/CameraHelper.java 2016-06-03 11:04:12.217423496 -0700 +++ new/modules/graphics/src/main/java/com/sun/javafx/scene/CameraHelper.java 2016-06-03 11:04:12.073423497 -0700 @@ -25,6 +25,10 @@ package com.sun.javafx.scene; +import com.sun.javafx.geom.BaseBounds; +import com.sun.javafx.geom.transform.BaseTransform; +import com.sun.javafx.jmx.MXNodeAlgorithm; +import com.sun.javafx.jmx.MXNodeAlgorithmContext; import com.sun.javafx.sg.prism.NGNode; import com.sun.javafx.util.Utils; import javafx.geometry.Point2D; @@ -70,6 +74,22 @@ cameraAccessor.doMarkDirty(node, dirtyBit); } + @Override + protected BaseBounds computeGeomBoundsImpl(Node node, BaseBounds bounds, + BaseTransform tx) { + return cameraAccessor.doComputeGeomBounds(node, bounds, tx); + } + + @Override + protected boolean computeContainsImpl(Node node, double localX, double localY) { + return cameraAccessor.doComputeContains(node, localX, localY); + } + + @Override + protected Object processMXNodeImpl(Node node, MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx) { + return cameraAccessor.doProcessMXNode(node, alg, ctx); + } + public static Point2D project(Camera camera, Point3D p) { return cameraAccessor.project(camera, p); } @@ -93,6 +113,9 @@ public interface CameraAccessor { void doMarkDirty(Node node, DirtyBits dirtyBit); void doUpdatePeer(Node node); + BaseBounds doComputeGeomBounds(Node node, BaseBounds bounds, BaseTransform tx); + boolean doComputeContains(Node node, double localX, double localY); + Object doProcessMXNode(Node node, MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx); Point2D project(Camera camera, Point3D p); Point2D pickNodeXYPlane(Camera camera, Node node, double x, double y); Point3D pickProjectPlane(Camera camera, double x, double y);