box.setTranslateY(pointsOffset.getY()); box.setTranslateZ(0.05f + pointsOffset.getZ()); box.setMaterial(new PhongMaterial(color)); boxes.add(box); count++;
private void addBox(double size, Point3D center, Group root, Color color) { Box box = new Box(size, size, size); box.setTranslateX(center.getX()); box.setTranslateY(center.getY()); box.setTranslateZ(center.getZ()); PhongMaterial material = new PhongMaterial(); material.setDiffuseColor(color); box.setMaterial(material); root.getChildren().add(box); }
private void buildAxes() { final PhongMaterial redMaterial = new PhongMaterial(); redMaterial.setDiffuseColor(Color.DARKRED); redMaterial.setSpecularColor(Color.RED); final PhongMaterial greenMaterial = new PhongMaterial(); greenMaterial.setDiffuseColor(Color.DARKGREEN); greenMaterial.setSpecularColor(Color.GREEN); final PhongMaterial blueMaterial = new PhongMaterial(); blueMaterial.setDiffuseColor(Color.DARKBLUE); blueMaterial.setSpecularColor(Color.BLUE); float axisLength = pointRadius*200; final Box xAxis = new Box(axisLength, pointRadius, pointRadius); final Box yAxis = new Box(pointRadius, axisLength, pointRadius); final Box zAxis = new Box(pointRadius, pointRadius, axisLength); xAxis.setMaterial(redMaterial); yAxis.setMaterial(greenMaterial); zAxis.setMaterial(blueMaterial); axisGroup.getChildren().addAll(xAxis, yAxis, zAxis); axisGroup.setVisible(false); world.getChildren().addAll(axisGroup); }
/** * * @param redBox the value of redBox */ private Group createAxis(double scale) { Box redBox = new Box(scale, scale / 10.0, scale / 10.0); redBox.setTranslateX(scale / 2.0); PhongMaterial redMaterial = new PhongMaterial(); redMaterial.setSpecularColor(Color.RED); redMaterial.setDiffuseColor(Color.RED); redBox.setMaterial(redMaterial); Box blueBox = new Box(scale / 10.0, scale, scale / 10.0); blueBox.setTranslateY(scale / 2.0); PhongMaterial blueMaterial = new PhongMaterial(); blueMaterial.setSpecularColor(Color.BLUE); blueMaterial.setDiffuseColor(Color.BLUE); blueBox.setMaterial(blueMaterial); Box greenBox = new Box(scale / 10.0, scale / 10.0, scale); greenBox.setTranslateZ(scale / 2.0); PhongMaterial greenMaterial = new PhongMaterial(); greenMaterial.setSpecularColor(Color.GREEN); greenMaterial.setDiffuseColor(Color.GREEN); greenBox.setMaterial(greenMaterial); Group axisGroup = new Group(redBox, blueBox, greenBox); return axisGroup; }
public static Group convertTo3D(Node node, int depth) { Group root = new Group(); root.setTranslateX(node.getLayoutX()); root.setTranslateY(node.getLayoutY()); root.setTranslateZ(-20); System.out.println("Layer " + depth + " - Node Type: " + node.getClass()); Box box = new Box(node.getBoundsInParent().getWidth(), node.getBoundsInParent().getHeight(), 0.1); box.setTranslateX(node.getLayoutX()); box.setTranslateY(node.getLayoutY()); SnapshotParameters snapshotParameters = new SnapshotParameters(); snapshotParameters.setFill(Color.TRANSPARENT); box.setMaterial(new PhongMaterial(Color.WHITE, node.snapshot(snapshotParameters, new WritableImage((int) node.getBoundsInParent().getWidth(), (int) node.getBoundsInParent().getHeight())), null, null, null)); root.getChildren().add(box); if (node instanceof Parent) { for (Node child : ((Parent) node).getChildrenUnmodifiable()) { root.getChildren().add(convertTo3D(child, depth + 1)); } } return root; }
@Override public void start(Stage primaryStage) throws Exception { View3DFactory view3dFactory = new View3DFactory(800, 600); view3dFactory.addCameraController(); view3dFactory.addWorldCoordinateSystem(0.3); MeshView meshView = new MeshView(); meshView.setMesh(colorMeshBuilder.generateMesh()); meshView.setMaterial(colorMeshBuilder.generateMaterial()); view3dFactory.addNodeToView(meshView); PhongMaterial material = new PhongMaterial(Color.DARKCYAN); // normalCylinder.setMaterial(material); // rootNode.getChildren().add(normalCylinder); material = new PhongMaterial(); material.setDiffuseColor(new Color(1.0, 1.0, 0.0, 0.0)); box.setMaterial(material); view3dFactory.addNodeToView(box); primaryStage.setScene(view3dFactory.getScene()); primaryStage.show(); }