--- old/modules/graphics/src/main/java/com/sun/javafx/scene/shape/Shape3DHelper.java 2016-06-03 11:04:21.729423389 -0700 +++ new/modules/graphics/src/main/java/com/sun/javafx/scene/shape/Shape3DHelper.java 2016-06-03 11:04:21.593423390 -0700 @@ -25,6 +25,10 @@ package com.sun.javafx.scene.shape; +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.scene.NodeHelper; import com.sun.javafx.util.Utils; import javafx.scene.Node; @@ -47,6 +51,22 @@ shape3DAccessor.doUpdatePeer(node); } + @Override + protected BaseBounds computeGeomBoundsImpl(Node node, BaseBounds bounds, + BaseTransform tx) { + return shape3DAccessor.doComputeGeomBounds(node, bounds, tx); + } + + @Override + protected boolean computeContainsImpl(Node node, double localX, double localY) { + return shape3DAccessor.doComputeContains(node, localX, localY); + } + + @Override + protected Object processMXNodeImpl(Node node, MXNodeAlgorithm alg, MXNodeAlgorithmContext ctx) { + return shape3DAccessor.doProcessMXNode(node, alg, ctx); + } + public static void setShape3DAccessor(final Shape3DAccessor newAccessor) { if (shape3DAccessor != null) { throw new IllegalStateException(); @@ -57,6 +77,9 @@ public interface Shape3DAccessor { 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); } }