module HGeometry.Plane
( Plane
, NonVerticalHyperPlane(NonVerticalHyperPlane, Plane)
, projectedIntersectionLine
, module HGeometry.HyperPlane.Class
) where
import HGeometry.HyperPlane.Class
import HGeometry.HyperPlane.Intersection
import HGeometry.HyperPlane.NonVertical
import HGeometry.Line.General
projectedIntersectionLine :: (Plane_ plane r, Fractional r, Eq r)
=> plane -> plane
-> Maybe (VerticalOrLineEQ r)
projectedIntersectionLine :: forall plane r.
(Plane_ plane r, Fractional r, Eq r) =>
plane -> plane -> Maybe (VerticalOrLineEQ r)
projectedIntersectionLine plane
h plane
h' = do Plane_x_Plane_Line l <- plane
-> plane
-> Maybe (PlanePlaneIntersection plane (VerticalOrLineEQ r))
forall plane r.
(Plane_ plane r, Fractional r, Eq r) =>
plane
-> plane
-> Maybe (PlanePlaneIntersection plane (VerticalOrLineEQ r))
planePlaneIntersection plane
h plane
h'
pure l