--- old/modules/graphics/src/main/java/com/sun/javafx/scene/shape/MeshViewHelper.java 2016-06-03 11:04:19.065423419 -0700 +++ new/modules/graphics/src/main/java/com/sun/javafx/scene/shape/MeshViewHelper.java 2016-06-03 11:04:18.925423420 -0700 @@ -25,6 +25,10 @@ package com.sun.javafx.scene.shape; +import com.sun.javafx.geom.BaseBounds; +import com.sun.javafx.geom.PickRay; +import com.sun.javafx.geom.transform.BaseTransform; +import com.sun.javafx.scene.input.PickResultChooser; import com.sun.javafx.sg.prism.NGNode; import com.sun.javafx.util.Utils; import javafx.scene.Node; @@ -62,6 +66,22 @@ meshViewAccessor.doUpdatePeer(node); } + @Override + protected BaseBounds computeGeomBoundsImpl(Node node, BaseBounds bounds, + BaseTransform tx) { + return meshViewAccessor.doComputeGeomBounds(node, bounds, tx); + } + + @Override + protected boolean computeContainsImpl(Node node, double localX, double localY) { + return meshViewAccessor.doComputeContains(node, localX, localY); + } + + protected boolean computeIntersectsImpl(Node node, PickRay pickRay, + PickResultChooser pickResult) { + return meshViewAccessor.doComputeIntersects(node, pickRay, pickResult); + } + public static void setMeshViewAccessor(final MeshViewAccessor newAccessor) { if (meshViewAccessor != null) { throw new IllegalStateException(); @@ -73,6 +93,10 @@ public interface MeshViewAccessor { NGNode doCreatePeer(Node node); void doUpdatePeer(Node node); + BaseBounds doComputeGeomBounds(Node node, BaseBounds bounds, BaseTransform tx); + boolean doComputeContains(Node node, double localX, double localY); + boolean doComputeIntersects(Node node, PickRay pickRay, + PickResultChooser pickResult); } }