Package gov.nih.mipav.model.structures
Class ComputationalGeometry.ConstrainedDelaunaySloan
java.lang.Object
gov.nih.mipav.model.structures.ComputationalGeometry.ConstrainedDelaunaySloan
- Enclosing class:
ComputationalGeometry
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionAddConstraints(ComputationalGeometry.HalfEdgeData2 triangleData, ArrayList<ComputationalGeometry.MyVector2> constraints, boolean shouldRemoveTriangles) private booleanAreTwoEdgesTheSame(ComputationalGeometry.MyVector2 e1_p1, ComputationalGeometry.MyVector2 e1_p2, ComputationalGeometry.MyVector2 e2_p1, ComputationalGeometry.MyVector2 e2_p2) private HashSet<ComputationalGeometry.HalfEdge2> FindAllConstraintEdges(ArrayList<ComputationalGeometry.MyVector2> constraints, ComputationalGeometry.HalfEdgeData2 triangleData) FindIntersectingEdges_BruteForce(HashSet<ComputationalGeometry.HalfEdge2> edges, ComputationalGeometry.MyVector2 c_p1, ComputationalGeometry.MyVector2 c_p2) private voidFindIntersectingEdges_TriangleWalk(ComputationalGeometry.HalfEdgeData2 triangleData, ComputationalGeometry.MyVector2 c_p1, ComputationalGeometry.MyVector2 c_p2, ArrayList<ComputationalGeometry.HalfEdge2> intersectingEdges) FindTrianglesWithinConstraint(ComputationalGeometry.HalfEdgeData2 triangleData, ArrayList<ComputationalGeometry.MyVector2> constraints) GenerateTriangulation(HashSet<ComputationalGeometry.MyVector2> points, ArrayList<ComputationalGeometry.MyVector2> hull, HashSet<ArrayList<ComputationalGeometry.MyVector2>> holes, boolean shouldRemoveTriangles, ComputationalGeometry.HalfEdgeData2 triangleData) private booleanIsEdgeCrossingEdge(ComputationalGeometry.MyVector2 e1_p1, ComputationalGeometry.MyVector2 e1_p2, ComputationalGeometry.MyVector2 e2_p1, ComputationalGeometry.MyVector2 e2_p2) private booleanIsEdgeInListOfEdges(HashSet<ComputationalGeometry.HalfEdge2> edges, ComputationalGeometry.MyVector2 p1, ComputationalGeometry.MyVector2 p2) private ArrayList<ComputationalGeometry.HalfEdge2> RemoveIntersectingEdges(ComputationalGeometry.MyVector2 v_i, ComputationalGeometry.MyVector2 v_j, PriorityQueue<ComputationalGeometry.HalfEdge2> intersectingEdges) private voidRemoveSuperfluousTriangles(ComputationalGeometry.HalfEdgeData2 triangleData, ArrayList<ComputationalGeometry.MyVector2> constraints) private voidRestoreDelaunayTriangulation(ComputationalGeometry.MyVector2 c_p1, ComputationalGeometry.MyVector2 c_p2, ArrayList<ComputationalGeometry.HalfEdge2> newEdges)
-
Constructor Details
-
ConstrainedDelaunaySloan
public ConstrainedDelaunaySloan()
-
-
Method Details
-
GenerateTriangulation
public ComputationalGeometry.HalfEdgeData2 GenerateTriangulation(HashSet<ComputationalGeometry.MyVector2> points, ArrayList<ComputationalGeometry.MyVector2> hull, HashSet<ArrayList<ComputationalGeometry.MyVector2>> holes, boolean shouldRemoveTriangles, ComputationalGeometry.HalfEdgeData2 triangleData) -
AddConstraints
private ComputationalGeometry.HalfEdgeData2 AddConstraints(ComputationalGeometry.HalfEdgeData2 triangleData, ArrayList<ComputationalGeometry.MyVector2> constraints, boolean shouldRemoveTriangles) -
RemoveIntersectingEdges
private ArrayList<ComputationalGeometry.HalfEdge2> RemoveIntersectingEdges(ComputationalGeometry.MyVector2 v_i, ComputationalGeometry.MyVector2 v_j, PriorityQueue<ComputationalGeometry.HalfEdge2> intersectingEdges) -
RestoreDelaunayTriangulation
private void RestoreDelaunayTriangulation(ComputationalGeometry.MyVector2 c_p1, ComputationalGeometry.MyVector2 c_p2, ArrayList<ComputationalGeometry.HalfEdge2> newEdges) -
RemoveSuperfluousTriangles
private void RemoveSuperfluousTriangles(ComputationalGeometry.HalfEdgeData2 triangleData, ArrayList<ComputationalGeometry.MyVector2> constraints) -
FindTrianglesWithinConstraint
public HashSet<ComputationalGeometry.HalfEdgeFace2> FindTrianglesWithinConstraint(ComputationalGeometry.HalfEdgeData2 triangleData, ArrayList<ComputationalGeometry.MyVector2> constraints) -
FindAllConstraintEdges
private HashSet<ComputationalGeometry.HalfEdge2> FindAllConstraintEdges(ArrayList<ComputationalGeometry.MyVector2> constraints, ComputationalGeometry.HalfEdgeData2 triangleData) -
FindIntersectingEdges_BruteForce
private PriorityQueue<ComputationalGeometry.HalfEdge2> FindIntersectingEdges_BruteForce(HashSet<ComputationalGeometry.HalfEdge2> edges, ComputationalGeometry.MyVector2 c_p1, ComputationalGeometry.MyVector2 c_p2) -
FindIntersectingEdges_TriangleWalk
private void FindIntersectingEdges_TriangleWalk(ComputationalGeometry.HalfEdgeData2 triangleData, ComputationalGeometry.MyVector2 c_p1, ComputationalGeometry.MyVector2 c_p2, ArrayList<ComputationalGeometry.HalfEdge2> intersectingEdges) -
AreTwoEdgesTheSame
private boolean AreTwoEdgesTheSame(ComputationalGeometry.MyVector2 e1_p1, ComputationalGeometry.MyVector2 e1_p2, ComputationalGeometry.MyVector2 e2_p1, ComputationalGeometry.MyVector2 e2_p2) -
IsEdgeInListOfEdges
private boolean IsEdgeInListOfEdges(HashSet<ComputationalGeometry.HalfEdge2> edges, ComputationalGeometry.MyVector2 p1, ComputationalGeometry.MyVector2 p2) -
IsEdgeCrossingEdge
private boolean IsEdgeCrossingEdge(ComputationalGeometry.MyVector2 e1_p1, ComputationalGeometry.MyVector2 e1_p2, ComputationalGeometry.MyVector2 e2_p1, ComputationalGeometry.MyVector2 e2_p2)
-