< prev index next >

modules/graphics/src/main/java/com/sun/javafx/scene/CameraHelper.java

Print this page

        

*** 23,32 **** --- 23,36 ---- * questions. */ 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; import javafx.geometry.Point3D; import javafx.scene.Camera;
*** 68,77 **** --- 72,97 ---- protected void markDirtyImpl(Node node, DirtyBits dirtyBit) { super.markDirtyImpl(node, dirtyBit); 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); } public static Point2D pickNodeXYPlane(Camera camera, Node node, double x, double y) {
*** 91,100 **** --- 111,123 ---- } 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); }
< prev index next >