module Data.Geometry.Line( module Data.Geometry.Line.Internal
) where
import Data.Geometry.Line.Internal
import Data.Geometry.LineSegment
import Data.Geometry.Box
import Data.Geometry.Properties
import Data.Geometry.Point
import Data.Geometry.Boundary
import Data.Geometry.Transformation
import Data.Geometry.Vector
instance (Num r, AlwaysTruePFT d) => IsTransformable (Line d r) where
transformBy t = supportingLine . transformPointFunctor t . toLineSegment'
where
toLineSegment' :: (Num r, Arity d) => Line d r -> LineSegment d () r
toLineSegment' = toLineSegment
type instance IntersectionOf (Line 2 r) (Boundary (Rectangle p r)) =
[ NoIntersection, Point 2 r, (Point 2 r, Point 2 r) , LineSegment 2 () r]
type instance IntersectionOf (Line 2 r) (Rectangle p r) =
[ NoIntersection, Point 2 r, LineSegment 2 () r]