modules/graphics/src/test/java/test/javafx/scene/Mouse3DTest.java

Print this page
rev 9250 : 8134762: Refactor Javafx graphics module tests for clear separation of tests
Reviewed-by:

*** 21,39 **** * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ ! package javafx.scene; import com.sun.javafx.geom.PickRay; ! import com.sun.javafx.test.MouseEventGenerator; import javafx.event.Event; import javafx.event.EventHandler; import javafx.event.EventType; import javafx.geometry.Point2D; import javafx.geometry.Point3D; import javafx.scene.input.MouseDragEvent; import javafx.scene.input.MouseEvent; import javafx.scene.input.PickResult; import javafx.scene.shape.Rectangle; import javafx.scene.shape.Box; --- 21,50 ---- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA * or visit www.oracle.com if you need additional information or have any * questions. */ ! package test.javafx.scene; import com.sun.javafx.geom.PickRay; ! import test.com.sun.javafx.test.MouseEventGenerator; import javafx.event.Event; import javafx.event.EventHandler; import javafx.event.EventType; import javafx.geometry.Point2D; import javafx.geometry.Point3D; + import javafx.scene.Camera; + import javafx.scene.CameraShim; + import javafx.scene.DepthTest; + import javafx.scene.Group; + import javafx.scene.Node; + import javafx.scene.ParallelCamera; + import javafx.scene.Parent; + import javafx.scene.ParentShim; + import javafx.scene.PerspectiveCamera; + import javafx.scene.Scene; + import javafx.scene.SubScene; import javafx.scene.input.MouseDragEvent; import javafx.scene.input.MouseEvent; import javafx.scene.input.PickResult; import javafx.scene.shape.Rectangle; import javafx.scene.shape.Box;
*** 64,74 **** @Test public void shouldComputeCorrectPerspectivePickRay() { Camera cam = new PerspectiveCamera(); scene(group(), cam, true); cam.impl_updatePeer(); ! PickRay pickRay = cam.computePickRay(10, 20, null); assertEquals(PERSPECTIVE_CAMERA_X, pickRay.getOriginNoClone().x, 0.00001); assertEquals(PERSPECTIVE_CAMERA_Y, pickRay.getOriginNoClone().y, 0.00001); assertEquals(PERSPECTIVE_CAMERA_Z, pickRay.getOriginNoClone().z, 0.00001); assertEquals(10 - PERSPECTIVE_CAMERA_X, pickRay.getDirectionNoClone().x, 0.00001); assertEquals(20 - PERSPECTIVE_CAMERA_Y, pickRay.getDirectionNoClone().y, 0.00001); --- 75,85 ---- @Test public void shouldComputeCorrectPerspectivePickRay() { Camera cam = new PerspectiveCamera(); scene(group(), cam, true); cam.impl_updatePeer(); ! PickRay pickRay = CameraShim.computePickRay(cam,10, 20, null); assertEquals(PERSPECTIVE_CAMERA_X, pickRay.getOriginNoClone().x, 0.00001); assertEquals(PERSPECTIVE_CAMERA_Y, pickRay.getOriginNoClone().y, 0.00001); assertEquals(PERSPECTIVE_CAMERA_Z, pickRay.getOriginNoClone().z, 0.00001); assertEquals(10 - PERSPECTIVE_CAMERA_X, pickRay.getDirectionNoClone().x, 0.00001); assertEquals(20 - PERSPECTIVE_CAMERA_Y, pickRay.getDirectionNoClone().y, 0.00001);
*** 78,88 **** @Test public void shouldComputeCorrectPerspectivePickRayWithFixedEye() { Camera cam = new PerspectiveCamera(true); scene(group(), cam, true); cam.impl_updatePeer(); ! PickRay pickRay = cam.computePickRay(10, 20, null); assertEquals(0.0, pickRay.getOriginNoClone().x, 0.00001); assertEquals(0.0, pickRay.getOriginNoClone().y, 0.00001); assertEquals(0.0, pickRay.getOriginNoClone().z, 0.00001); assertEquals(10 - PERSPECTIVE_CAMERA_X, pickRay.getDirectionNoClone().x, 0.00001); assertEquals(20 - PERSPECTIVE_CAMERA_Y, pickRay.getDirectionNoClone().y, 0.00001); --- 89,99 ---- @Test public void shouldComputeCorrectPerspectivePickRayWithFixedEye() { Camera cam = new PerspectiveCamera(true); scene(group(), cam, true); cam.impl_updatePeer(); ! PickRay pickRay = CameraShim.computePickRay(cam,10, 20, null); assertEquals(0.0, pickRay.getOriginNoClone().x, 0.00001); assertEquals(0.0, pickRay.getOriginNoClone().y, 0.00001); assertEquals(0.0, pickRay.getOriginNoClone().z, 0.00001); assertEquals(10 - PERSPECTIVE_CAMERA_X, pickRay.getDirectionNoClone().x, 0.00001); assertEquals(20 - PERSPECTIVE_CAMERA_Y, pickRay.getDirectionNoClone().y, 0.00001);
*** 94,104 **** Camera cam = new ParallelCamera(); cam.setNearClip(100.0); cam.setFarClip(200.0); scene(group(), cam, true); cam.impl_updatePeer(); ! PickRay pickRay = cam.computePickRay(100, 200, null); assertEquals(-PERSPECTIVE_CAMERA_Z * 100, pickRay.getNearClip(), 0.01); assertEquals(-PERSPECTIVE_CAMERA_Z * 200, pickRay.getFarClip(), 0.01); } --- 105,115 ---- Camera cam = new ParallelCamera(); cam.setNearClip(100.0); cam.setFarClip(200.0); scene(group(), cam, true); cam.impl_updatePeer(); ! PickRay pickRay = CameraShim.computePickRay(cam,100, 200, null); assertEquals(-PERSPECTIVE_CAMERA_Z * 100, pickRay.getNearClip(), 0.01); assertEquals(-PERSPECTIVE_CAMERA_Z * 200, pickRay.getFarClip(), 0.01); }
*** 107,117 **** Camera cam = new PerspectiveCamera(); cam.setNearClip(100.0); cam.setFarClip(200.0); scene(group(), cam, true); cam.impl_updatePeer(); ! PickRay pickRay = cam.computePickRay(100, 200, null); double xd = PERSPECTIVE_CAMERA_X - 100; double yd = PERSPECTIVE_CAMERA_Y - 200; double pd = Math.sqrt(xd * xd + yd * yd); double len = Math.sqrt(PERSPECTIVE_CAMERA_Z * PERSPECTIVE_CAMERA_Z + pd * pd); --- 118,128 ---- Camera cam = new PerspectiveCamera(); cam.setNearClip(100.0); cam.setFarClip(200.0); scene(group(), cam, true); cam.impl_updatePeer(); ! PickRay pickRay = CameraShim.computePickRay(cam,100, 200, null); double xd = PERSPECTIVE_CAMERA_X - 100; double yd = PERSPECTIVE_CAMERA_Y - 200; double pd = Math.sqrt(xd * xd + yd * yd); double len = Math.sqrt(PERSPECTIVE_CAMERA_Z * PERSPECTIVE_CAMERA_Z + pd * pd);
*** 125,135 **** Camera cam = new PerspectiveCamera(true); cam.setNearClip(100.0); cam.setFarClip(200.0); scene(group(), cam, true); cam.impl_updatePeer(); ! PickRay pickRay = cam.computePickRay(100, 200, null); assertEquals(104.39, pickRay.getNearClip(), 0.01); assertEquals(208.78, pickRay.getFarClip(), 0.01); } @Test --- 136,146 ---- Camera cam = new PerspectiveCamera(true); cam.setNearClip(100.0); cam.setFarClip(200.0); scene(group(), cam, true); cam.impl_updatePeer(); ! PickRay pickRay = CameraShim.computePickRay(cam,100, 200, null); assertEquals(104.39, pickRay.getNearClip(), 0.01); assertEquals(208.78, pickRay.getFarClip(), 0.01); } @Test
*** 137,147 **** Camera cam = new PerspectiveCamera(); scene(group(cam), cam, true); cam.setTranslateX(50); cam.getParent().setTranslateY(30); cam.impl_updatePeer(); ! PickRay pickRay = cam.computePickRay(10, 20, null); assertEquals(50 + PERSPECTIVE_CAMERA_X, pickRay.getOriginNoClone().x, 0.00001); assertEquals(30 + PERSPECTIVE_CAMERA_Y, pickRay.getOriginNoClone().y, 0.00001); assertEquals(PERSPECTIVE_CAMERA_Z, pickRay.getOriginNoClone().z, 0.00001); assertEquals(10 - PERSPECTIVE_CAMERA_X, pickRay.getDirectionNoClone().x, 0.00001); assertEquals(20 - PERSPECTIVE_CAMERA_Y, pickRay.getDirectionNoClone().y, 0.00001); --- 148,158 ---- Camera cam = new PerspectiveCamera(); scene(group(cam), cam, true); cam.setTranslateX(50); cam.getParent().setTranslateY(30); cam.impl_updatePeer(); ! PickRay pickRay = CameraShim.computePickRay(cam,10, 20, null); assertEquals(50 + PERSPECTIVE_CAMERA_X, pickRay.getOriginNoClone().x, 0.00001); assertEquals(30 + PERSPECTIVE_CAMERA_Y, pickRay.getOriginNoClone().y, 0.00001); assertEquals(PERSPECTIVE_CAMERA_Z, pickRay.getOriginNoClone().z, 0.00001); assertEquals(10 - PERSPECTIVE_CAMERA_X, pickRay.getDirectionNoClone().x, 0.00001); assertEquals(20 - PERSPECTIVE_CAMERA_Y, pickRay.getDirectionNoClone().y, 0.00001);
*** 150,160 **** @Test public void shouldComputeCorrectParallelPickRay() { Camera cam = new ParallelCamera(); scene(group(), cam, true); ! PickRay pickRay = cam.computePickRay(10, 20, null); assertEquals(10.0, pickRay.getOriginNoClone().x, 0.00001); assertEquals(20.0, pickRay.getOriginNoClone().y, 0.00001); assertEquals(PERSPECTIVE_CAMERA_Z, pickRay.getOriginNoClone().z, 0.1); assertEquals(0.0, pickRay.getDirectionNoClone().x, 0.00001); assertEquals(0.0, pickRay.getDirectionNoClone().y, 0.00001); --- 161,171 ---- @Test public void shouldComputeCorrectParallelPickRay() { Camera cam = new ParallelCamera(); scene(group(), cam, true); ! PickRay pickRay = CameraShim.computePickRay(cam,10, 20, null); assertEquals(10.0, pickRay.getOriginNoClone().x, 0.00001); assertEquals(20.0, pickRay.getOriginNoClone().y, 0.00001); assertEquals(PERSPECTIVE_CAMERA_Z, pickRay.getOriginNoClone().z, 0.1); assertEquals(0.0, pickRay.getDirectionNoClone().x, 0.00001); assertEquals(0.0, pickRay.getDirectionNoClone().y, 0.00001);
*** 166,176 **** Camera cam = new ParallelCamera(); scene(group(cam), cam, true); cam.setTranslateX(50); cam.getParent().setTranslateY(30); cam.impl_updatePeer(); ! PickRay pickRay = cam.computePickRay(10, 20, null); assertEquals(60.0, pickRay.getOriginNoClone().x, 0.00001); assertEquals(50.0, pickRay.getOriginNoClone().y, 0.00001); assertEquals(PERSPECTIVE_CAMERA_Z, pickRay.getOriginNoClone().z, 0.1); assertEquals(0.0, pickRay.getDirectionNoClone().x, 0.00001); assertEquals(0.0, pickRay.getDirectionNoClone().y, 0.00001); --- 177,187 ---- Camera cam = new ParallelCamera(); scene(group(cam), cam, true); cam.setTranslateX(50); cam.getParent().setTranslateY(30); cam.impl_updatePeer(); ! PickRay pickRay = CameraShim.computePickRay(cam,10, 20, null); assertEquals(60.0, pickRay.getOriginNoClone().x, 0.00001); assertEquals(50.0, pickRay.getOriginNoClone().y, 0.00001); assertEquals(PERSPECTIVE_CAMERA_Z, pickRay.getOriginNoClone().z, 0.1); assertEquals(0.0, pickRay.getDirectionNoClone().x, 0.00001); assertEquals(0.0, pickRay.getDirectionNoClone().y, 0.00001);
*** 2329,2339 **** cam.setTranslateX(-43); camGroup.setTranslateX(23); cam.impl_updatePeer(); Scene s = scene(group(b), cam, true); ! s.getRoot().getChildren().add(camGroup); s.impl_processMouseEvent(g.generateMouseEvent(MouseEvent.MOUSE_MOVED, 30, 40)); MouseEvent e = me.event; assertNotNull(e); assertCoordinates(e, 30, 40, 50, 70.638298, -85.106383); --- 2340,2350 ---- cam.setTranslateX(-43); camGroup.setTranslateX(23); cam.impl_updatePeer(); Scene s = scene(group(b), cam, true); ! ParentShim.getChildren(s.getRoot()).add(camGroup); s.impl_processMouseEvent(g.generateMouseEvent(MouseEvent.MOUSE_MOVED, 30, 40)); MouseEvent e = me.event; assertNotNull(e); assertCoordinates(e, 30, 40, 50, 70.638298, -85.106383);
*** 2353,2363 **** cam.setTranslateX(-43); camGroup.setTranslateX(23); cam.impl_updatePeer(); Scene s = scene(group(b), cam, true); ! s.getRoot().getChildren().add(camGroup); s.impl_processMouseEvent(g.generateMouseEvent(MouseEvent.MOUSE_MOVED, 30, 40)); MouseEvent e = me.event; assertNotNull(e); assertCoordinates(e, 30, 40, 10, 40, -200); --- 2364,2374 ---- cam.setTranslateX(-43); camGroup.setTranslateX(23); cam.impl_updatePeer(); Scene s = scene(group(b), cam, true); ! ParentShim.getChildren(s.getRoot()).add(camGroup); s.impl_processMouseEvent(g.generateMouseEvent(MouseEvent.MOUSE_MOVED, 30, 40)); MouseEvent e = me.event; assertNotNull(e); assertCoordinates(e, 30, 40, 10, 40, -200);
*** 2372,2389 **** Group root = new Group(); Scene scene = new Scene(root, 800, 800, false); Group subRoot = new Group(); SubScene sub = new SubScene(subRoot, 700, 700, true, null); ! root.getChildren().add(sub); PerspectiveCamera cam = new PerspectiveCamera(true); sub.setCamera(cam); Box b = new Box(); b.setTranslateZ(1.2); ! subRoot.getChildren().add(b); Stage stage = new Stage(); stage.setScene(scene); stage.show(); --- 2383,2400 ---- Group root = new Group(); Scene scene = new Scene(root, 800, 800, false); Group subRoot = new Group(); SubScene sub = new SubScene(subRoot, 700, 700, true, null); ! ParentShim.getChildren(root).add(sub); PerspectiveCamera cam = new PerspectiveCamera(true); sub.setCamera(cam); Box b = new Box(); b.setTranslateZ(1.2); ! ParentShim.getChildren(subRoot).add(b); Stage stage = new Stage(); stage.setScene(scene); stage.show();
*** 2411,2422 **** * Moves the camera so that picking on point * [PERSPECTIVE_CAMERA_X, PERSPECTIVE_CAMERA_Y] results in pick ray * with origin [x, y, -1000] and direction [0, 0, 1000]. */ private void makeParallel(Scene s, double x, double y) { ! if (!s.getRoot().getChildren().contains(s.getCamera())) { ! s.getRoot().getChildren().add(s.getCamera()); } s.getCamera().setTranslateX(x - PERSPECTIVE_CAMERA_X); s.getCamera().setTranslateY(y - PERSPECTIVE_CAMERA_Y); s.getCamera().impl_updatePeer(); } --- 2422,2433 ---- * Moves the camera so that picking on point * [PERSPECTIVE_CAMERA_X, PERSPECTIVE_CAMERA_Y] results in pick ray * with origin [x, y, -1000] and direction [0, 0, 1000]. */ private void makeParallel(Scene s, double x, double y) { ! if (!ParentShim.getChildren(s.getRoot()).contains(s.getCamera())) { ! ParentShim.getChildren(s.getRoot()).add(s.getCamera()); } s.getCamera().setTranslateX(x - PERSPECTIVE_CAMERA_X); s.getCamera().setTranslateY(y - PERSPECTIVE_CAMERA_Y); s.getCamera().impl_updatePeer(); }