{-# LANGUAGE AllowAmbiguousTypes #-} {-# LANGUAGE BangPatterns #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE NamedFieldPuns #-} {-# LANGUAGE ScopedTypeVariables #-} {-# LANGUAGE TypeApplications #-} -- | The topology-mutating primitives, gathered from their role modules. module Moonlight.Triangulation.Internal.DcelOperations ( setupFirstVertex , setupSecondVertex , splitLineEdge , extendLine , lineToArea , insertIntoFace , insertOnEdge , insertOutsideHull , insertOutsideHullBetween , closeOuterTurn , fixHullConvexity , flipEdge , legalizeScratch , legalizeEdges , legalizeCavityFanScratch , LegalizationLaw (..) , seedStarScratch , seedGenericEdges , drainLegalization , noStarVertex , isFlippableEdge , collectLineChain ) where import Moonlight.Triangulation.Internal.DcelOperations.CandidateArena ( noStarVertex , seedGenericEdges , seedStarScratch ) import Moonlight.Triangulation.Internal.DcelOperations.Chain ( collectLineChain , extendLine , lineToArea , setupFirstVertex , setupSecondVertex , splitLineEdge ) import Moonlight.Triangulation.Internal.DcelOperations.FlipRewrite (flipEdge) import Moonlight.Triangulation.Internal.DcelOperations.FlipRule ( LegalizationLaw (..) , isFlippableEdge ) import Moonlight.Triangulation.Internal.DcelOperations.Hull ( closeOuterTurn , fixHullConvexity , insertOutsideHull , insertOutsideHullBetween ) import Moonlight.Triangulation.Internal.DcelOperations.Legalize ( legalizeCavityFanScratch , legalizeEdges , legalizeScratch ) import Moonlight.Triangulation.Internal.DcelOperations.Normalize (drainLegalization) import Moonlight.Triangulation.Internal.DcelOperations.Subdivide ( insertIntoFace , insertOnEdge )