-- | The constraint layer: the partial map from sites and segments, defined -- exactly on realizable segment sets and naming its witness where it is not. module Moonlight.Triangulation.Cdt ( ConstrainedDelaunayTriangulation , CdtError (..) , CorridorObstruction (..) , ConstraintResult (..) , ConstraintOutcome (..) , ConstraintBatchStats (..) , ConstraintBatchResult (..) , ConstrainedExtensionResult (..) , ConstrainedSeamSource (..) , ConstrainedSeamFaceEvidence , constrainedSeamSourceFace , constrainedSeamTargetFace , constrainedSeamFaceFirstPoint , constrainedSeamFaceSecondPoint , constrainedSeamFaceThirdPoint , ConstrainedSeamConstraintEvidence , constrainedSeamConstraintSegment , constrainedSeamConstraintRecovery , ConstrainedSeamResult , constrainedSeamResultTriangulation , constrainedSeamLeftFaceEvidence , constrainedSeamRightFaceEvidence , constrainedSeamNewFaces , constrainedSeamLeftConstraintEvidence , constrainedSeamRightConstraintEvidence , constrainedSeamConstraintStats , constrainedSeamBuildStats , ConstraintSplitBatchResult (..) , CdtBuildResult (..) , constrainedDelaunay , constrainedDelaunayMaximal , fromDelaunay , constraintEdges , CanonicalSegment , segmentStart , segmentEnd , ConstraintConflict , conflictFirstSegment , conflictSecondSegment , ConstrainedUnionError (..) , constraintSegments , unionConstrainedWith , unionConstrained , joinSeparatedConstrainedWith , extendConstrainedWith , constraintStorageBytes , existsConstraint , canAddConstraint , intersectsConstraint , getConflictingEdgesBetweenPoints , getConflictingEdgesBetweenVertices , recoverConstraints , addConstraintEdge , addConstraintEdges , addConstraintAndSplit , addConstraintsAndSplit , removeConstraintEdge , outerRegionFaces , boundedRegionFaces ) where import Moonlight.Triangulation.Internal.Cdt.Batch (recoverConstraints) import Moonlight.Triangulation.Internal.Cdt.Build ( constrainedDelaunay , constrainedDelaunayMaximal , fromDelaunay ) import Moonlight.Triangulation.Internal.Cdt.Query ( canAddConstraint , constraintEdges , constraintStorageBytes , existsConstraint , getConflictingEdgesBetweenPoints , getConflictingEdgesBetweenVertices , intersectsConstraint ) import Moonlight.Triangulation.Internal.Cdt.Region ( boundedRegionFaces , outerRegionFaces ) import Moonlight.Triangulation.Internal.Cdt.Segment ( addConstraintEdge , addConstraintEdges , removeConstraintEdge ) import Moonlight.Triangulation.Internal.Cdt.Split ( addConstraintAndSplit , addConstraintsAndSplit ) import Moonlight.Triangulation.Internal.Cdt.Types ( CanonicalSegment (..) , CdtBuildResult (..) , CdtError (..) , ConstrainedUnionError (..) , ConstraintBatchResult (..) , ConstraintBatchStats (..) , ConstrainedExtensionResult (..) , ConstrainedSeamConstraintEvidence (..) , ConstrainedSeamFaceEvidence (..) , ConstrainedSeamResult (..) , ConstrainedSeamSource (..) , ConstraintConflict (..) , ConstraintOutcome (..) , ConstraintResult (..) , ConstraintSplitBatchResult (..) , CorridorObstruction (..) ) import Moonlight.Triangulation.Internal.Cdt.Union ( constraintSegments , extendConstrainedWith , joinSeparatedConstrainedWith , unionConstrained , unionConstrainedWith ) import Moonlight.Triangulation.Internal.Representation ( ConstrainedDelaunayTriangulation )