private void create() { if (subdiv != null) return; Envelope siteEnv = envelope(siteCoords); List vertices = toVertices(siteCoords); subdiv = new QuadEdgeSubdivision(siteEnv, tolerance); IncrementalDelaunayTriangulator triangulator = new IncrementalDelaunayTriangulator(subdiv); triangulator.insertSites(vertices); }
/** * Inserts all sites in a collection. The inserted vertices <b>MUST</b> be * unique up to the provided tolerance value. (i.e. no two vertices should be * closer than the provided tolerance value). They do not have to be rounded * to the tolerance grid, however. * * @param vertices a Collection of Vertex * * @throws LocateFailureException if the location algorithm fails to converge in a reasonable number of iterations */ public void insertSites(Collection vertices) { for (Iterator i = vertices.iterator(); i.hasNext();) { Vertex v = (Vertex) i.next(); insertSite(v); } }
/** * Computes the Delaunay triangulation of the initial sites. */ public void formInitialDelaunay() { computeBoundingBox(); subdiv = new QuadEdgeSubdivision(computeAreaEnv, tolerance); subdiv.setLocator(new LastFoundQuadEdgeLocator(subdiv)); incDel = new IncrementalDelaunayTriangulator(subdiv); insertSites(initialVertices); }
/** * Computes the Delaunay triangulation of the initial sites. */ public void formInitialDelaunay() { computeBoundingBox(); subdiv = new QuadEdgeSubdivision(computeAreaEnv, tolerance); subdiv.setLocator(new LastFoundQuadEdgeLocator(subdiv)); incDel = new IncrementalDelaunayTriangulator(subdiv); insertSites(initialVertices); }
private void create() { if (subdiv != null) return; Envelope siteEnv = DelaunayTriangulationBuilder.envelope(siteCoords); diagramEnv = siteEnv; // add a buffer around the final envelope double expandBy = Math.max(diagramEnv.getWidth(), diagramEnv.getHeight()); diagramEnv.expandBy(expandBy); if (clipEnv != null) diagramEnv.expandToInclude(clipEnv); List vertices = DelaunayTriangulationBuilder.toVertices(siteCoords); subdiv = new QuadEdgeSubdivision(siteEnv, tolerance); IncrementalDelaunayTriangulator triangulator = new IncrementalDelaunayTriangulator(subdiv); triangulator.insertSites(vertices); }
private ConstraintVertex insertSite(ConstraintVertex v) { KdNode kdnode = kdt.insert(v.getCoordinate(), v); if (!kdnode.isRepeated()) { incDel.insertSite(v); } else { ConstraintVertex snappedV = (ConstraintVertex) kdnode.getData(); snappedV.merge(v); return snappedV; // testing // if ( v.isOnConstraint() && ! currV.isOnConstraint()) { // System.out.println(v); // } } return v; }
private void create() { if (subdiv != null) return; Envelope siteEnv = envelope(siteCoords); List vertices = toVertices(siteCoords); subdiv = new QuadEdgeSubdivision(siteEnv, tolerance); IncrementalDelaunayTriangulator triangulator = new IncrementalDelaunayTriangulator(subdiv); triangulator.insertSites(vertices); }
/** * Inserts all sites in a collection. The inserted vertices <b>MUST</b> be * unique up to the provided tolerance value. (i.e. no two vertices should be * closer than the provided tolerance value). They do not have to be rounded * to the tolerance grid, however. * * @param vertices a Collection of Vertex * * @throws LocateFailureException if the location algorithm fails to converge in a reasonable number of iterations */ public void insertSites(Collection vertices) { for (Iterator i = vertices.iterator(); i.hasNext();) { Vertex v = (Vertex) i.next(); insertSite(v); } }
private void create() { if (subdiv != null) return; Envelope siteEnv = DelaunayTriangulationBuilder.envelope(siteCoords); diagramEnv = siteEnv; // add a buffer around the final envelope double expandBy = Math.max(diagramEnv.getWidth(), diagramEnv.getHeight()); diagramEnv.expandBy(expandBy); if (clipEnv != null) diagramEnv.expandToInclude(clipEnv); List vertices = DelaunayTriangulationBuilder.toVertices(siteCoords); subdiv = new QuadEdgeSubdivision(siteEnv, tolerance); IncrementalDelaunayTriangulator triangulator = new IncrementalDelaunayTriangulator(subdiv); triangulator.insertSites(vertices); }
private ConstraintVertex insertSite(ConstraintVertex v) { KdNode kdnode = kdt.insert(v.getCoordinate(), v); if (!kdnode.isRepeated()) { incDel.insertSite(v); } else { ConstraintVertex snappedV = (ConstraintVertex) kdnode.getData(); snappedV.merge(v); return snappedV; // testing // if ( v.isOnConstraint() && ! currV.isOnConstraint()) { // System.out.println(v); // } } return v; }