private Node createConstraintEdgesGraphics(PlanarRegionSegmentationRawData rawData, ConcaveHullFactoryResult concaveHullFactoryResult) { JavaFXMeshBuilder meshBuilder = new JavaFXMeshBuilder(); Point3D planeOrigin = rawData.getOrigin(); Quaternion planeOrientation = rawData.getOrientation(); for (ConcaveHullVariables concaveHullVariables : concaveHullFactoryResult.getIntermediateVariables()) { for (QuadEdge constraintEdge : concaveHullVariables.getConstraintEdges()) { Point3D orig = PolygonizerTools.toPointInWorld(constraintEdge.orig().getX(), constraintEdge.orig().getY(), planeOrigin, planeOrientation); Point3D dest = PolygonizerTools.toPointInWorld(constraintEdge.dest().getX(), constraintEdge.dest().getY(), planeOrigin, planeOrientation); meshBuilder.addLine(orig, dest, 0.002); } } MeshView meshView = new MeshView(meshBuilder.generateMesh()); meshView.setMaterial(new PhongMaterial(Color.BLACK)); meshView.visibleProperty().bind(showConstraintEdges); return meshView; }