waterfall-cad-0.5.0.0: src/Waterfall/TwoD/Internal/Path2D.hs
{-# LANGUAGE DerivingVia #-}
{-# OPTIONS_HADDOCK not-home #-}
module Waterfall.TwoD.Internal.Path2D
( Path2D (..)
) where
import Waterfall.Internal.Path.Common (RawPath (..))
-- | A Path in 2D Space
--
-- Under the hood, this is represented by an OpenCascade `TopoDS.Wire`, constrained to the plane \(z=0\).
--
-- Please feel free to report a bug if you're able to construct a `Path2D`
-- which does not lie on this plane (without using Internal functions).
--
-- The monoid instance Joins `Path2D`s, @ a <> b @ connects the end point of @ a @ to the start of @ b @, if these points are not coincident, a line is created between them.
newtype Path2D = Path2D { rawPath :: RawPath } deriving (Semigroup, Monoid) via RawPath