import javafx.application.Application; import javafx.event.EventHandler; import javafx.scene.Camera; import javafx.scene.Group; import javafx.scene.PerspectiveCamera; import javafx.scene.Scene; import javafx.scene.input.KeyEvent; import javafx.scene.material.PhongMaterial; import javafx.scene.paint.Color; import javafx.scene.shape3d.Sphere; import javafx.stage.Stage; /* * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. */ /** * * @author Andrew Glushchenko */ public class CameraTranslateZTestApp extends Application { static { System.setProperty("prism.dirtyopts", "false"); } private Group group; private Group root; private Group camGroup; private boolean switcher = true; @Override public void start(Stage stage) throws Exception { root = new Group(); group = buildGroup(); Scene scene = new Scene(root, 500, 500, true); camGroup = new Group(addCamera(scene)); root.getChildren().addAll(group, camGroup); translate(); scene.addEventHandler(KeyEvent.ANY, new EventHandler() { @Override public void handle(KeyEvent t) { translate(); } }); stage.setScene(scene); stage.show(); } private static Group buildGroup() { Sphere s = new Sphere(); s.setScaleX(100); s.setScaleY(100); s.setScaleZ(100); s.setMaterial(new PhongMaterial(Color.AQUA)); return new Group(s); } private static Camera addCamera(Scene scene) { PerspectiveCamera pc = new PerspectiveCamera(false); scene.setCamera(pc); return pc; } private void translate() { if (switcher) { camGroup.setTranslateZ(-1000); group.setTranslateZ(0); } else { camGroup.setTranslateZ(0); group.setTranslateZ(1000); } switcher = !switcher; } public static void main(String[] args) { launch(args); } }