Package georegression.delaunay
Class DelaunayIncrementalWalk
java.lang.Object
georegression.delaunay.DelaunayIncrementalWalk
- All Implemented Interfaces:
VerbosePrint
Incremental Delaunay triangulation based on [1]. The triangle which contains each point is found by walking
through the graph. The points are automatically shuffled to avoid degenerate configurations.
- Triangles corners are in counter-clockwise order.
- L. J. Guibas, D. E. Knuth, M. Sharir, "Randomized incremental construction of Delaunay and Voronoi diagrams" Algorithmica, 7, 1992, 381-413
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprotected static classprotected static class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidprotected voidcheckThenSwapEdge(int triangleID, int side, double px, double py) protected voidinsertPointInTriangle(DelaunayIncrementalWalk.CandidateTriangle candidate, int pointID, double px, double py) protected voidinsertPointOnLine(DelaunayIncrementalWalk.CandidateTriangle candidate, int side, int pointID, double px, double py) voidprocess(AccessList<Point2D_F64> points, int size) protected voidvoidsetRandomSeed(long seed) voidsetVerbose(@Nullable PrintStream out, @Nullable Set<String> configuration) protected voidshufflePointIndexes(int size) toMesh(@Nullable Mesh2D_F64 mesh) protected voidtraverseThenInsert(int pointID) protected inttriangleOnOtherSide(int triangleID, int side, DelaunayIncrementalWalk.OtherSide results)
-
Constructor Details
-
DelaunayIncrementalWalk
public DelaunayIncrementalWalk()
-
-
Method Details
-
setRandomSeed
public void setRandomSeed(long seed) -
process
-
toMesh
-
addInitialLargeTriangles
protected void addInitialLargeTriangles() -
removeInitialLargeTriangles
protected void removeInitialLargeTriangles() -
shufflePointIndexes
protected void shufflePointIndexes(int size) -
traverseThenInsert
protected void traverseThenInsert(int pointID) -
insertPointInTriangle
protected void insertPointInTriangle(DelaunayIncrementalWalk.CandidateTriangle candidate, int pointID, double px, double py) -
insertPointOnLine
protected void insertPointOnLine(DelaunayIncrementalWalk.CandidateTriangle candidate, int side, int pointID, double px, double py) -
checkThenSwapEdge
protected void checkThenSwapEdge(int triangleID, int side, double px, double py) -
triangleOnOtherSide
protected int triangleOnOtherSide(int triangleID, int side, DelaunayIncrementalWalk.OtherSide results) -
setVerbose
public void setVerbose(@Nullable @Nullable PrintStream out, @Nullable @Nullable Set<String> configuration) - Specified by:
setVerbosein interfaceVerbosePrint
-