메소드 | 설명 | |
---|---|---|
Triangulate ( |
Triangulate simple polygon with holes
|
메소드 | 설명 | |
---|---|---|
Angle ( TriangulationPoint origin, TriangulationPoint pa, TriangulationPoint pb ) : double | ||
AngleExceeds90Degrees ( TriangulationPoint origin, TriangulationPoint pa, TriangulationPoint pb ) : bool | ||
AngleExceedsPlus90DegreesOrIsNegative ( TriangulationPoint origin, TriangulationPoint pa, TriangulationPoint pb ) : bool | ||
BasinAngle ( |
The basin angle is decided against the horizontal line [1,0]
|
|
EdgeEvent ( |
||
EdgeEvent ( |
||
Fill ( |
Adds a triangle to the advancing front to fill a hole.
|
|
FillAdvancingFront ( |
Fills holes in the Advancing Front
|
|
FillBasin ( |
Fills a basin that has formed on the Advancing Front to the right of given node. First we decide a left,bottom and right node that forms the boundaries of the basin. Then we do a reqursive fill.
|
|
FillBasinReq ( |
Recursive algorithm to fill a Basin with triangles
|
|
FillEdgeEvent ( |
||
FillLeftAboveEdgeEvent ( |
||
FillLeftBelowEdgeEvent ( |
||
FillLeftConcaveEdgeEvent ( |
||
FillLeftConvexEdgeEvent ( |
||
FillRightAboveEdgeEvent ( |
||
FillRightBelowEdgeEvent ( |
||
FillRightConcaveEdgeEvent ( |
||
FillRightConvexEdgeEvent ( |
||
FinalizationConvexHull ( |
If this is a Delaunay Triangulation of a pointset we need to fill so the triangle mesh gets a ConvexHull
|
|
FinalizationPolygon ( |
||
FlipEdgeEvent ( |
||
FlipScanEdgeEvent ( |
Scan part of the FlipScan algorithm When a triangle pair isn't flippable we will scan for the next point that is inside the flip triangle scan area. When found we generate a new flipEdgeEvent
|
|
HoleAngle ( |
???
|
|
IsEdgeSideOfTriangle ( DelaunayTriangle triangle, TriangulationPoint ep, TriangulationPoint eq ) : bool | ||
IsShallow ( |
||
LargeHole_DontFill ( |
||
Legalize ( |
Returns true if triangle was legalized
|
|
NewFrontTriangle ( |
Creates a new front triangle and legalize it
|
|
NextFlipPoint ( TriangulationPoint ep, TriangulationPoint eq, DelaunayTriangle ot, TriangulationPoint op ) : TriangulationPoint |
When we need to traverse from one triangle to the next we need the point in current triangle that is the opposite point to the next triangle.
|
|
NextFlipTriangle ( |
After a flip we have two triangles and know that only one will still be intersecting the edge. So decide which to contiune with and legalize the other
|
|
PointEvent ( |
Find closes node to the left of the new point and create a new triangle. If needed new holes and basins will be filled to.
|
|
RotateTrianglePair ( DelaunayTriangle t, TriangulationPoint p, DelaunayTriangle ot, TriangulationPoint op ) : void |
Rotates a triangle pair one vertex CW n2 n2 P +-----+ P +-----+ | t /| |\ t | | / | | \ | n1| / |n3 n1| \ |n3 | / | after CW | \ | |/ oT | | oT \| +-----+ oP +-----+ n4 n4
|
|
Sweep ( |
Start sweeping the Y-sorted point set from bottom to top
|
|
TurnAdvancingFrontConvex ( |
We will traverse the entire advancing front and fill it to form a convex hull.
|
public static Triangulate ( |
||
tcx | ||
리턴 | void |