packages feed

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
  )