List<QuadEdgeTriangle> qeTriangles = QuadEdgeTriangle.createOn(qes); Collection<com.vividsolutions.jts.triangulate.quadedge.Vertex> qeVertices = qes.getVertices(false);
List<QuadEdgeTriangle> qeTriangles = QuadEdgeTriangle.createOn(qes); Collection<Vertex> qeVertices = qes.getVertices(false);
allTriangles.addAll(QuadEdgeTriangle.createOn(subdivision));
@SuppressWarnings("unchecked") private static Node createOrderedBorderEdgesGraphics(QuadEdgeSubdivision quadEdgeSubdivision, PlanarRegionSegmentationRawData rawData) { List<QuadEdgeTriangle> delaunayTriangles = QuadEdgeTriangle.createOn(quadEdgeSubdivision); List<QuadEdge> orderedBorderEdges = SimpleConcaveHullFactory.computeIntermediateVariables(delaunayTriangles, null).getOrderedBorderEdges(); JavaFXMultiColorMeshBuilder meshBuilder = new JavaFXMultiColorMeshBuilder(new TextureColorAdaptivePalette(16)); Point3D planeOrigin = rawData.getOrigin(); Quaternion planeOrientation = rawData.getOrientation(); double startHue = 0.0; double endHue = 240.0; double lineStartBirghtness = 0.2; double lineEndBirghtness = 1.0; for (int edgeIndex = 0; edgeIndex < orderedBorderEdges.size(); edgeIndex++) { QuadEdge edge = orderedBorderEdges.get(edgeIndex); Point3D dest = PolygonizerTools.toPointInWorld(edge.dest().getX(), edge.dest().getY(), planeOrigin, planeOrientation); Point3D orig = PolygonizerTools.toPointInWorld(edge.orig().getX(), edge.orig().getY(), planeOrigin, planeOrientation); double alpha = edgeIndex / (double) orderedBorderEdges.size(); double lineHue = (1.0 - alpha) * startHue + alpha * endHue; Color startColor = Color.hsb(lineHue, 0.9, lineStartBirghtness); Color endColor = Color.hsb(lineHue, 0.9, lineEndBirghtness); meshBuilder.addLine(orig, dest, 0.002, startColor, endColor); } MeshView meshView = new MeshView(meshBuilder.generateMesh()); meshView.setMaterial(meshBuilder.generateMaterial()); return meshView; }