packages feed

moonlight-planar-1.1.0.0: src-dcel/Moonlight/Planar/Exact.hs

-- | Public exact-geometry capabilities. The implementation is private so
-- proof-preserving owners can share admitted descent without exposing raw
-- construction of invariant-bearing carriers.
module Moonlight.Planar.Exact
  ( ExactRational
  , ExactArithmeticError (..)
  , exactRational
  , exactRationalNumerator
  , exactRationalDenominator
  , exactRationalBitWidth
  , exactDivide
  , PositiveExact
  , UnitInterval
  , ScalarRefinementError (..)
  , positiveExact
  , positiveExactValue
  , unitInterval
  , unitIntervalValue
  , unitZero
  , unitHalf
  , unitOne
  , positiveOne
  , positiveTwo
  , exactHalf
  , exactThird
  , blendPositive
  , divideByPositive
  , ratioPositive
  , multiplyPositive
  , positiveSumSquares
  , ExactBounds
  , exactPointsBounds
  , boundsUnion
  , boundsOverlap
  , pointInBounds
  , boundsMinimumX
  , boundsMaximumX
  , boundsMinimumY
  , boundsMaximumY
  , ExactPoint
  , exactPoint
  , exactPointCoordinates
  , exactPointCross
  , exactPointBitWidth
  , ExactAffineLine
  , ExactHalfPlaneError (..)
  , exactAffineLine
  , exactAffineLineCoefficients
  , oppositeExactAffineLine
  , exactAffineLineIntersection
  , ExactClosedHalfPlane
  , exactClosedHalfPlane
  , exactClosedHalfPlaneFromDirectedEdge
  , exactClosedHalfPlaneLine
  , classifyExactPoint
  , ExactRetainedPolygon
  , exactRetainedPolygon
  , exactRetainedPolygonPoints
  , exactRetainedPolygonBoundary
  , ExactClipDisposition (..)
  , ExactClipError (..)
  , ExactClipReceipt (..)
  , emptyExactClipReceipt
  , exactClipRetainedPolygon
  , ExactVector (..)
  , exactVectorFromPoints
  , addExactVectors
  , exactCross
  , compareExactVectorAngle
  , translateExactPoint
  , ExactRay
  , exactRay
  , exactRayOrigin
  , exactRayDirection
  , ExactSegment
  , ExactGeometryError (..)
  , exactSegment
  , exactSegmentEndpoints
  , exactPointFromPoint
  , exactPointFromQueryPoint
  , exactPointToEmbeddingCandidate
  , exactOrient2d
  , exactOnClosedSegment
  , SegmentRelation (..)
  , allSegmentRelations
  , exactSegmentRelation
  , ExactIntersectionError (..)
  , exactLineIntersection
  , exactSupportingLineIntersection
  ) where

import Moonlight.Planar.Internal.Exact
import Moonlight.Planar.Internal.ExactRational
  ( ExactRational, ExactArithmeticError (..), exactRational, exactRationalNumerator
  , exactRationalDenominator, exactRationalBitWidth, exactDivide
  , PositiveExact, UnitInterval, ScalarRefinementError (..)
  , positiveExact, positiveExactValue, unitInterval, unitIntervalValue
  , unitZero, unitHalf, unitOne, positiveOne, positiveTwo, exactHalf, exactThird
  , blendPositive, divideByPositive, ratioPositive, multiplyPositive, positiveSumSquares )
import Moonlight.Planar.Internal.SegmentRelation (SegmentRelation (..), allSegmentRelations)