moonlight-triangulation-1.2.0.0: src-dcel/Moonlight/Triangulation/Internal/DcelOperations.hs
{-# 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
, ReservedSweepCells
, SweepCellCursor
, SweepInsertion (..)
, reserveSweepCells
, initialSweepCellCursor
, commitReservedSweepConnections
, insertOutsideHull
, insertOutsideHullAtEdge
, closeOuterTurn
, closeOuterTurnReserved
, fixHullConvexity
, flipEdge
, legalizeScratch
, legalizeStarEdge
, legalizeEdges
, legalizeCavityFanScratch
, LegalizationLaw (..)
, seedStarScratch
, seedGenericEdges
, drainLegalization
, CandidateDiscipline (..)
, isFlippableEdge
, collectLineChain
) where
import Moonlight.Triangulation.Internal.DcelOperations.CandidateArena
( CandidateDiscipline (..)
, 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
( ReservedSweepCells
, SweepCellCursor
, SweepInsertion (..)
, closeOuterTurn
, closeOuterTurnReserved
, commitReservedSweepConnections
, fixHullConvexity
, initialSweepCellCursor
, insertOutsideHull
, insertOutsideHullAtEdge
, reserveSweepCells
)
import Moonlight.Triangulation.Internal.DcelOperations.Legalize
( legalizeCavityFanScratch
, legalizeEdges
, legalizeScratch
, legalizeStarEdge
)
import Moonlight.Triangulation.Internal.DcelOperations.Normalize (drainLegalization)
import Moonlight.Triangulation.Internal.DcelOperations.Subdivide
( insertIntoFace
, insertOnEdge
)