private void processCollisions(List<Point3D> collisions) { JavaFXMeshBuilder meshBuilder = new JavaFXMeshBuilder(); for (Point3D collision : collisions) meshBuilder.addTetrahedron(COLLISION_SIZE, collision); MeshView meshView = new MeshView(meshBuilder.generateMesh()); meshView.setMaterial(new PhongMaterial(Color.RED)); collisionGraphics.set(meshView); }
rawPointsMeshBuilder.addTetrahedron(VisualizationParameters.CLUSTER_RAWPOINT_SIZE, rawPoint); navigableExtrusionsMeshBuilder .addMultiLine(cluster.getNavigableExtrusionsInWorld(), VisualizationParameters.NAVIGABLECLUSTER_LINE_THICKNESS, false);
private Node createRegionPointCloudGraphics(PlanarRegionSegmentationRawData rawData) { JavaFXMeshBuilder meshBuilder = new JavaFXMeshBuilder(); rawData.stream().forEach(point -> meshBuilder.addTetrahedron(0.0025, point)); MeshView meshView = new MeshView(meshBuilder.generateMesh()); meshView.setMaterial(new PhongMaterial(OcTreeMeshBuilder.getRegionColor(rawData.getRegionId()))); meshView.setMouseTransparent(true); return meshView; }
@Override public void run() { NormalOcTreeMessage newBufferState = bufferState.getAndSet(null); if (!showBuffer.get()) { if (hasClearedBufferGraphics) return; bufferMeshBuilder.clear(); meshAndMaterialToRender.set(new Pair<>(null, null)); hasClearedBufferGraphics = true; return; } uiMessager.submitStateRequestToModule(REAModuleAPI.RequestBuffer); bufferMeshBuilder.clear(); if (newBufferState == null) return; UIOcTree uiOcTree = new UIOcTree(newBufferState); for (UIOcTreeNode uiOcTreeNode : uiOcTree) { Point3D nodeCenter = new Point3D(uiOcTreeNode.getX(), uiOcTreeNode.getY(), uiOcTreeNode.getZ()); bufferMeshBuilder.addTetrahedron(NODE_SCALE * uiOcTreeNode.getSize(), nodeCenter); } meshAndMaterialToRender.set(new Pair<>(bufferMeshBuilder.generateMesh(), bufferMaterial)); hasClearedBufferGraphics = false; }