moonlight-triangulation-0.1.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
, 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
)