hgeometry-kernel
Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellNone
LanguageGHC2024

HGeometry.HyperPlane.Intersection

Description

Intersection between hyperplanes in R^3

Synopsis

Documentation

data PlanePlaneIntersection plane line Source #

The intersection between two planes in R^3.

Constructors

Plane_x_Plane_Line line 
Plane_x_Plane_Plane plane 

Instances

Instances details
Bifoldable PlanePlaneIntersection Source # 
Instance details

Defined in HGeometry.HyperPlane.Intersection

Methods

bifold :: Monoid m => PlanePlaneIntersection m m -> m Source #

bifoldMap :: Monoid m => (a -> m) -> (b -> m) -> PlanePlaneIntersection a b -> m Source #

bifoldr :: (a -> c -> c) -> (b -> c -> c) -> c -> PlanePlaneIntersection a b -> c Source #

bifoldl :: (c -> a -> c) -> (c -> b -> c) -> c -> PlanePlaneIntersection a b -> c Source #

Bifunctor PlanePlaneIntersection Source # 
Instance details

Defined in HGeometry.HyperPlane.Intersection

Bitraversable PlanePlaneIntersection Source # 
Instance details

Defined in HGeometry.HyperPlane.Intersection

Methods

bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> PlanePlaneIntersection a b -> f (PlanePlaneIntersection c d) Source #

Functor (PlanePlaneIntersection plane) Source # 
Instance details

Defined in HGeometry.HyperPlane.Intersection

Methods

fmap :: (a -> b) -> PlanePlaneIntersection plane a -> PlanePlaneIntersection plane b Source #

(<$) :: a -> PlanePlaneIntersection plane b -> PlanePlaneIntersection plane a Source #

Foldable (PlanePlaneIntersection plane) Source # 
Instance details

Defined in HGeometry.HyperPlane.Intersection

Methods

fold :: Monoid m => PlanePlaneIntersection plane m -> m Source #

foldMap :: Monoid m => (a -> m) -> PlanePlaneIntersection plane a -> m Source #

foldMap' :: Monoid m => (a -> m) -> PlanePlaneIntersection plane a -> m Source #

foldr :: (a -> b -> b) -> b -> PlanePlaneIntersection plane a -> b Source #

foldr' :: (a -> b -> b) -> b -> PlanePlaneIntersection plane a -> b Source #

foldl :: (b -> a -> b) -> b -> PlanePlaneIntersection plane a -> b Source #

foldl' :: (b -> a -> b) -> b -> PlanePlaneIntersection plane a -> b Source #

foldr1 :: (a -> a -> a) -> PlanePlaneIntersection plane a -> a Source #

foldl1 :: (a -> a -> a) -> PlanePlaneIntersection plane a -> a Source #

toList :: PlanePlaneIntersection plane a -> [a] Source #

null :: PlanePlaneIntersection plane a -> Bool Source #

length :: PlanePlaneIntersection plane a -> Int Source #

elem :: Eq a => a -> PlanePlaneIntersection plane a -> Bool Source #

maximum :: Ord a => PlanePlaneIntersection plane a -> a Source #

minimum :: Ord a => PlanePlaneIntersection plane a -> a Source #

sum :: Num a => PlanePlaneIntersection plane a -> a Source #

product :: Num a => PlanePlaneIntersection plane a -> a Source #

Traversable (PlanePlaneIntersection plane) Source # 
Instance details

Defined in HGeometry.HyperPlane.Intersection

Methods

traverse :: Applicative f => (a -> f b) -> PlanePlaneIntersection plane a -> f (PlanePlaneIntersection plane b) Source #

sequenceA :: Applicative f => PlanePlaneIntersection plane (f a) -> f (PlanePlaneIntersection plane a) Source #

mapM :: Monad m => (a -> m b) -> PlanePlaneIntersection plane a -> m (PlanePlaneIntersection plane b) Source #

sequence :: Monad m => PlanePlaneIntersection plane (m a) -> m (PlanePlaneIntersection plane a) Source #

(Read line, Read plane) => Read (PlanePlaneIntersection plane line) Source # 
Instance details

Defined in HGeometry.HyperPlane.Intersection

(Show line, Show plane) => Show (PlanePlaneIntersection plane line) Source # 
Instance details

Defined in HGeometry.HyperPlane.Intersection

(Eq line, Eq plane) => Eq (PlanePlaneIntersection plane line) Source # 
Instance details

Defined in HGeometry.HyperPlane.Intersection

Methods

(==) :: PlanePlaneIntersection plane line -> PlanePlaneIntersection plane line -> Bool Source #

(/=) :: PlanePlaneIntersection plane line -> PlanePlaneIntersection plane line -> Bool Source #

(Ord line, Ord plane) => Ord (PlanePlaneIntersection plane line) Source # 
Instance details

Defined in HGeometry.HyperPlane.Intersection

planePlaneIntersection :: (Plane_ plane r, Fractional r, Eq r) => plane -> plane -> Maybe (PlanePlaneIntersection plane (VerticalOrLineEQ r)) Source #

Given two planes, computes the line in which they intersect.

Orphan instances

(Eq r, Fractional r) => IsIntersectableWith (Plane r) (Plane r) Source # 
Instance details

Methods

intersect :: Plane r -> Plane r -> Intersection (Plane r) (Plane r) Source #

(Has_ Metric_ d r, Num r, Eq r, 2 <= d, d < (d + 1), Has_ Metric_ (1 + d) r, 1 <= d, Has_ Metric_ (d + 1) r, Eq (Vector (d + 1) r), d <= (d + 1)) => HasIntersectionWith (HyperPlane d r) (HyperPlane d r) Source # 
Instance details

Methods

intersects :: HyperPlane d r -> HyperPlane d r -> Bool Source #

(Has_ Metric_ d r, Num r, Eq r, 2 <= d, d < (d + 1), Has_ Metric_ (1 + d) r, Has_ Additive_ (d - 1) r, Eq (Vector d r), 1 <= d, Has_ Metric_ (d + 1) r, (1 + (d - 1)) ~ d, d <= (d + 1), (d - 1) <= d, ((d - 1) + 1) ~ d) => HasIntersectionWith (NonVerticalHyperPlane d r) (NonVerticalHyperPlane d r) Source # 
Instance details