public MeshView buildMeshView(String key) { MeshView meshView = new MeshView(); meshView.setId(key); meshView.setMaterial(materials.get(key)); meshView.setMesh(meshes.get(key)); meshView.setCullFace(CullFace.NONE); return meshView; }
private void render() { Pair<Mesh, Material> meshAndMaterial = meshAndMaterialToRender.getAndSet(null); if (meshAndMaterial != null) { planarRegionMeshView.setMesh(meshAndMaterial.getKey()); planarRegionMeshView.setMaterial(meshAndMaterial.getValue()); } }
private void updateMeshView(MeshView meshViewToUpdate, Pair<Mesh, Material> meshMaterial) { meshViewToUpdate.setMesh(meshMaterial.getKey()); meshViewToUpdate.setMaterial(meshMaterial.getValue()); }
@Override public void handle(long now) { if (show.get() && root.getChildren().isEmpty()) root.getChildren().add(footstepGraphMeshView); else if (!show.get() && !root.getChildren().isEmpty()) root.getChildren().clear(); if (reset.getAndSet(false)) { footstepGraphToRender.set(null); footstepGraphMeshView.setMesh(null); footstepGraphMeshView.setMaterial(null); return; } Pair<Mesh, Material> newMesh = footstepGraphToRender.get(); if (newMesh != null) { footstepGraphMeshView.setMesh(newMesh.getKey()); footstepGraphMeshView.setMaterial(newMesh.getValue()); } }
@Override public void handle(long now) { boolean addIntermediatePlan = showIntermediatePlan.get() && !solutionWasReceived.get() && root.getChildren().isEmpty(); boolean addFinalPlan = showSolution.get() && solutionWasReceived.get() && root.getChildren().isEmpty(); if (addIntermediatePlan || addFinalPlan) root.getChildren().add(footstepPathMeshView); boolean removeIntermediatePlan = !showIntermediatePlan.get() && !solutionWasReceived.get() && !root.getChildren().isEmpty(); boolean removeFinalPlan = !showSolution.get() && solutionWasReceived.get() && !root.getChildren().isEmpty(); if (removeIntermediatePlan || removeFinalPlan) root.getChildren().clear(); if (reset.getAndSet(false)) { footstepPathMeshView.setMesh(null); footstepPathMeshView.setMaterial(null); meshReference.set(null); return; } Pair<Mesh, Material> newMeshAndMaterial = meshReference.getAndSet(null); if (newMeshAndMaterial != null) { footstepPathMeshView.setMesh(newMeshAndMaterial.getKey()); footstepPathMeshView.setMaterial(newMeshAndMaterial.getValue()); } }
@Override public void handle(long now) { if (show.get() && root.getChildren().isEmpty()) { root.getChildren().addAll(bodyPathMeshView); } else if (!show.get() && !root.getChildren().isEmpty()) { root.getChildren().clear(); } if (reset.getAndSet(false)) { bodyPathMeshView.setMesh(null); bodyPathMeshView.setMaterial(null); bodyPathMeshToRender.set(null); return; } Pair<Mesh, Material> newMesh = bodyPathMeshToRender.getAndSet(null); if (newMesh != null) { if (VERBOSE) PrintTools.info(this, "Rendering body path line."); bodyPathMeshView.setMesh(newMesh.getKey()); bodyPathMeshView.setMaterial(newMesh.getValue()); } }
@Override protected void doAddMeshDataInstruction(Graphics3DAddMeshDataInstruction graphics3DAddMeshData) { graphics3DAddMeshData.getMeshData().getVertices(); TriangleMesh outputMesh = interpretMeshData(graphics3DAddMeshData.getMeshData()); Material outputMaterial = convertMaterial(graphics3DAddMeshData.getAppearance()); MeshView meshView = new MeshView(); meshView.setMesh(outputMesh); meshView.setMaterial(outputMaterial); Group meshGroup = new Group(meshView); currentGroup.getChildren().add(meshGroup); currentGroup = meshGroup; }
MeshDataHolder meshDataHolder = meshDataHolders[i]; MeshView meshView = new MeshView(); meshView.setMesh(JavaFXMeshDataInterpreter.interpretMeshData(meshDataHolder)); meshView.setMaterial(materials[i]); meshView.getTransforms().add(javaFxAffineToPack);
@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(); }
private void processFootMesh(FootstepNode node, FootstepNodeSnapData snapData, boolean valid) { meshBuilder.clear(); RigidBodyTransform planarTransformToWorld = new RigidBodyTransform(); FootstepNodeTools.getNodeTransform(node, planarTransformToWorld); RigidBodyTransform snappedTransformToWorld = new RigidBodyTransform(); ConvexPolygon2D foothold = snapData.getCroppedFoothold(); FootstepNodeTools.getSnappedNodeTransform(node, snapData.getSnapTransform(), snappedTransformToWorld); snappedTransformToWorld.appendTranslation(0.0, 0.0, 0.01); planarTransformToWorld.setTranslationZ(snappedTransformToWorld.getTranslationZ() + 0.1); Color regionColor = valid ? Color.GREEN : Color.RED; regionColor = Color.hsb(regionColor.getHue(), 0.9, 1.0); Point2D[] vertices = new Point2D[foothold.getNumberOfVertices()]; for (int j = 0; j < vertices.length; j++) { vertices[j] = new Point2D(foothold.getVertex(j)); } meshBuilder.addMultiLine(snappedTransformToWorld, vertices, 0.01, regionColor, true); meshBuilder.addPolygon(snappedTransformToWorld, foothold, regionColor); // TODO add mesh of planar footstep meshView.setOpacity(0.9); meshView.setMesh(meshBuilder.generateMesh()); meshView.setMaterial(meshBuilder.generateMaterial()); }
occupiedMeshView.setMesh(occupiedMeshBuilder.generateMesh()); occupiedMeshView.setMaterial(occupiedMeshBuilder.generateMaterial()); occupiedMeshView.setMouseTransparent(true); freeMeshView.setMesh(freeMeshBuilder.generateMesh()); PhongMaterial material = new PhongMaterial(); material.setDiffuseColor(FREE_COLOR);
occupiedMeshView.setMesh(occupiedMeshBuilder.generateMesh()); occupiedMeshView.setMaterial(occupiedMeshBuilder.generateMaterial()); view3dFactory.addNodeToView(occupiedMeshView); freeMeshView.setMesh(freeMeshBuilder.generateMesh()); PhongMaterial material = new PhongMaterial(); material.setDiffuseColor(FREE_COLOR);