hgeometry:kernel
Copyright(C) Frank Staals
Licensesee the LICENSE file
MaintainerFrank Staals
Safe HaskellSafe-Inferred
LanguageGHC2021

HGeometry.Intersection

Description

Defines a data type for representing intersections. Mostly useful for the more geometric types.

Synopsis

Documentation

type family Intersection g h :: Type Source #

The result of interesecting two geometries,

Instances

Instances details
type Intersection (Box point) (Box point) Source # 
Instance details

Defined in HGeometry.Box.Intersection

type Intersection (Box point) (Box point) = Maybe (Box (Point (Dimension point) (NumType point)))
type Intersection (HalfLine point) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

type Intersection (HalfLine point) (Rectangle point) = Maybe (HalfLineBoxIntersection (Point 2 (NumType point)))
type Intersection (HalfLine point') (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

type Intersection (HalfLine point') (Ball point) = Maybe (IntersectionOf (LinePV (Dimension point) (NumType point)) (Ball point))
type Intersection (VerticalOrLineEQ r) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

type Intersection (VerticalOrLineEQ r) (VerticalOrLineEQ r) Source # 
Instance details

Defined in HGeometry.Line.General

type Intersection (LineEQ r) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

type Intersection (LineEQ r) (VerticalOrLineEQ r) Source # 
Instance details

Defined in HGeometry.Line.General

type Intersection (LineEQ r) (LineEQ r) Source #

The intersection of two lines is either: NoIntersection, a point or a line.

Instance details

Defined in HGeometry.Line.LineEQ

type Intersection (ClosedLineSegment point') (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

type Intersection (ClosedLineSegment point') (Ball point) = Maybe (IntersectionOf (LinePV (Dimension point) (NumType point)) (Ball point))
type Intersection (HalfLine point) (LineSegment endPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

type Intersection (HalfLine point) (LineSegment endPoint point) = Maybe (HalfLineLineSegmentIntersection (Point 2 (NumType point)) (LineSegment endPoint point))
type Intersection (LineEQ r) (HyperPlane 2 r) Source # 
Instance details

Defined in HGeometry.Line.LineEQ

type Intersection (LineEQ r) (LinePV 2 r) Source # 
Instance details

Defined in HGeometry.Line

type Intersection (LineEQ r) (LineSegment AnEndPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

type Intersection (LineEQ r) (LineSegment (EndPoint t) point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

type Intersection (LinePV d r) (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

type Intersection (LinePV d r) (Ball point) = Maybe (IntersectionOf (LinePV d r) (Ball point))
type Intersection (LinePV 2 r) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

type Intersection (LinePV 2 r) (HalfLine point) Source # 
Instance details

Defined in HGeometry.HalfLine

type Intersection (LinePV 2 r) (HalfLine point) = Maybe (LineHalfLineIntersection (Point 2 r) (HalfLine point))
type Intersection (Point d r) (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

type Intersection (Point d r) (Ball point) = Maybe (Point d r)
type Intersection (Point d r) (Sphere point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

type Intersection (Point d r) (Sphere point) = Maybe (Point d r)
type Intersection (Point d r) (Box point) Source # 
Instance details

Defined in HGeometry.Box

type Intersection (Point d r) (Box point) = Maybe (Point d r)
type Intersection (Point d r) (HalfSpaceF boudingHyperPlane) Source # 
Instance details

Defined in HGeometry.HalfSpace

type Intersection (Point d r) (HalfSpaceF boudingHyperPlane) = Maybe (Point d r)
type Intersection (HyperPlane 2 r) (HyperPlane 2 r) Source # 
Instance details

Defined in HGeometry.Line.LineEQ

type Intersection (LinePV 2 r) (LinePV 2 r) Source #

The intersection of two lines is either: NoIntersection, a point or a line.

Instance details

Defined in HGeometry.Line.PointAndVector

type Intersection (LinePV 2 r) (LineSegment AnEndPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

type Intersection (LinePV 2 r) (LineSegment (EndPoint t) point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

type Intersection (LinePV 2 r) (LineSegment (EndPoint t) point)
type Intersection (LineSegment AnEndPoint point) (LineSegment AnEndPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

type Intersection (LineSegment (EndPoint t) point) (LineSegment (EndPoint t) point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

type Intersection (VerticalOrLineEQ r :+ extra) (VerticalOrLineEQ r :+ extra') Source # 
Instance details

Defined in HGeometry.Line.General

type Intersection (LineEQ r :+ extra) (LineEQ r :+ extra') Source # 
Instance details

Defined in HGeometry.Line.LineEQ

type Intersection (LineEQ r :+ extra) (LineEQ r :+ extra') = Maybe (LineLineIntersection (LineEQ r :+ extra))
type Intersection (LineSegment endPoint point :+ extra) (LineSegment endPoint point :+ extra) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

type Intersection (LineSegment endPoint point :+ extra) (LineSegment endPoint point :+ extra) = Maybe (LineSegmentLineSegmentIntersection (LineSegment endPoint point :+ extra))
type Intersection (Point 1 r) (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

type Intersection (Point 1 r) (Interval endPoint r) = Maybe r
type Intersection (Interval endPoint r) (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

type Intersection (Interval endPoint r) (Interval endPoint r) = Maybe (Interval_x_IntervalIntersection r (Interval endPoint r))

data family IntersectionOf g h Source #

The data family specifying to help implement the Intersection type family.

Instances

Instances details
(Show r, Has_ Additive_ d r) => Show (IntersectionOf (LinePV d r) (Ball point)) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

showsPrec :: Int -> IntersectionOf (LinePV d r) (Ball point) -> ShowS #

show :: IntersectionOf (LinePV d r) (Ball point) -> String #

showList :: [IntersectionOf (LinePV d r) (Ball point)] -> ShowS #

(Eq r, Eq (Vector d r)) => Eq (IntersectionOf (LinePV d r) (Ball point)) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

(==) :: IntersectionOf (LinePV d r) (Ball point) -> IntersectionOf (LinePV d r) (Ball point) -> Bool #

(/=) :: IntersectionOf (LinePV d r) (Ball point) -> IntersectionOf (LinePV d r) (Ball point) -> Bool #

data IntersectionOf (LinePV d r) (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

data IntersectionOf (LinePV d r) (Ball point)

class HasIntersectionWith g h where Source #

Class for types for which we can test if they intersect.

Minimal complete definition

Nothing

Methods

intersects :: g -> h -> Bool Source #

g intersects h = The intersection of g and h is non-empty.

default intersects :: (Intersection g h ~ Maybe (IntersectionOf g h), IsIntersectableWith g h) => g -> h -> Bool Source #

Instances

Instances details
(Ord r, Num r, Point_ point d r, HasComponents (Vector d (Interval_x_IntervalIntersection r (ClosedInterval r))) (Vector d (ClosedInterval r)), HasComponents (Vector d (ClosedInterval r)) (Vector d r), Has_ Vector_ d (ClosedInterval r), Has_ Additive_ d r, Traversable (Vector d), Applicative (Vector d), Zip (Vector d)) => HasIntersectionWith (Box point) (Box point) Source # 
Instance details

Defined in HGeometry.Box.Intersection

Methods

intersects :: Box point -> Box point -> Bool Source #

(Point_ point 2 r, Ord r, Num r) => HasIntersectionWith (HalfLine point) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

Methods

intersects :: HalfLine point -> Rectangle point -> Bool Source #

(Point_ point d r, Point_ point' d r, Ord r, Fractional r, Has_ Metric_ d r, HasSquaredEuclideanDistance point', MkHyperPlaneConstraints d r) => HasIntersectionWith (HalfLine point') (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

intersects :: HalfLine point' -> Ball point -> Bool Source #

Ord r => HasIntersectionWith (ClosedInterval r) (HalfOpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.HalfOpen

Ord r => HasIntersectionWith (OpenInterval r) (ClosedInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => HasIntersectionWith (OpenInterval r) (OpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

(Num r, Ord r, Point_ point 2 r) => HasIntersectionWith (VerticalOrLineEQ r) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

Eq r => HasIntersectionWith (VerticalOrLineEQ r) (VerticalOrLineEQ r) Source # 
Instance details

Defined in HGeometry.Line.General

(Num r, Ord r, Point_ point 2 r) => HasIntersectionWith (LineEQ r) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

Methods

intersects :: LineEQ r -> Rectangle point -> Bool Source #

Eq r => HasIntersectionWith (LineEQ r) (VerticalOrLineEQ r) Source # 
Instance details

Defined in HGeometry.Line.General

Eq r => HasIntersectionWith (LineEQ r) (LineEQ r) Source # 
Instance details

Defined in HGeometry.Line.LineEQ

Methods

intersects :: LineEQ r -> LineEQ r -> Bool Source #

(Point_ point 2 r, Point_ point' 2 r, Num r, Ord r) => HasIntersectionWith (ClosedLineSegment point) (OpenLineSegment point') Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Point_ point d r, Point_ point' d r, Ord r, Fractional r, Has_ Metric_ d r, HasSquaredEuclideanDistance point', MkHyperPlaneConstraints d r) => HasIntersectionWith (ClosedLineSegment point') (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

intersects :: ClosedLineSegment point' -> Ball point -> Bool Source #

(Point_ point d r, Point_ point' d r, Ord r, Fractional r, Has_ Metric_ d r, HasSquaredEuclideanDistance point') => HasIntersectionWith (ClosedLineSegment point') (Sphere point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

intersects :: ClosedLineSegment point' -> Sphere point -> Bool Source #

(Point_ point 2 r, Point_ point' 2 r, Num r, Ord r) => HasIntersectionWith (OpenLineSegment point) (ClosedLineSegment point') Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Ord r, Num r, Point_ point 2 r, IxValue (endPoint point) ~ point, EndPoint_ (endPoint point)) => HasIntersectionWith (HalfLine point) (LineSegment endPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

Methods

intersects :: HalfLine point -> LineSegment endPoint point -> Bool Source #

(Eq r, Fractional r) => HasIntersectionWith (LineEQ r) (HyperPlane 2 r) Source # 
Instance details

Defined in HGeometry.Line.LineEQ

Methods

intersects :: LineEQ r -> HyperPlane 2 r -> Bool Source #

(Eq r, Num r) => HasIntersectionWith (LineEQ r) (LinePV 2 r) Source # 
Instance details

Defined in HGeometry.Line

Methods

intersects :: LineEQ r -> LinePV 2 r -> Bool Source #

(Point_ point 2 r, Num r, Ord r, IxValue (endPoint point) ~ point, EndPoint_ (endPoint point)) => HasIntersectionWith (LineEQ r) (LineSegment endPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

Methods

intersects :: LineEQ r -> LineSegment endPoint point -> Bool Source #

(Point_ point 2 r, Point_ point' 2 r, Num r, Ord r) => HasIntersectionWith (ClosedLineSegment point) (LineSegment AnEndPoint point') Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Point_ point 2 r, Point_ point' 2 r, Num r, Ord r) => HasIntersectionWith (OpenLineSegment point) (LineSegment AnEndPoint point') Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Ord r, IxValue (endPoint r) ~ r, EndPoint_ (endPoint r)) => HasIntersectionWith (ClosedInterval r) (Interval endPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

intersects :: ClosedInterval r -> Interval endPoint r -> Bool Source #

Ord r => HasIntersectionWith (OpenInterval r) (Interval AnEndPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

(Point_ point d r, Ord r, Fractional r, Has_ Metric_ d r) => HasIntersectionWith (LinePV d r) (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

intersects :: LinePV d r -> Ball point -> Bool Source #

(Num r, Ord r, Point_ point 2 r) => HasIntersectionWith (LinePV 2 r) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

Methods

intersects :: LinePV 2 r -> Rectangle point -> Bool Source #

(Ord r, Num r, Point_ point 2 r) => HasIntersectionWith (LinePV 2 r) (HalfLine point) Source # 
Instance details

Defined in HGeometry.HalfLine

Methods

intersects :: LinePV 2 r -> HalfLine point -> Bool Source #

(Point_ point 2 r, Point_ point' 2 r, Num r, Ord r) => HasIntersectionWith (LineSegment AnEndPoint point) (ClosedLineSegment point') Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Point_ point 2 r, Point_ point' 2 r, Num r, Ord r) => HasIntersectionWith (LineSegment AnEndPoint point) (OpenLineSegment point') Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Ord r, Num r, Point_ point 2 r, Point_ point' 2 r, HasIntersectionWith (LineSegment endPoint point) (ClosedLineSegment point')) => HasIntersectionWith (LineSegment endPoint point) (Boundary (Rectangle point')) Source # 
Instance details

Defined in HGeometry.Box

Methods

intersects :: LineSegment endPoint point -> Boundary (Rectangle point') -> Bool Source #

(Ord r, Num r, Point_ point 2 r, Point_ point' 2 r, IxValue (endPoint point) ~ point, EndPoint_ (endPoint point), HasIntersectionWith (LineSegment endPoint point) (ClosedLineSegment point')) => HasIntersectionWith (LineSegment endPoint point) (Rectangle point') Source # 
Instance details

Defined in HGeometry.Box

Methods

intersects :: LineSegment endPoint point -> Rectangle point' -> Bool Source #

(Point_ point d r, Ord r, Num r, Has_ Metric_ d r) => HasIntersectionWith (Point d r) (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

intersects :: Point d r -> Ball point -> Bool Source #

(Point_ point d r, Eq r, Num r, Has_ Metric_ d r) => HasIntersectionWith (Point d r) (Sphere point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

intersects :: Point d r -> Sphere point -> Bool Source #

(Point_ point d r, Num r, Ord r, Foldable1 (Vector d), Zip (Vector d)) => HasIntersectionWith (Point d r) (Box point) Source # 
Instance details

Defined in HGeometry.Box

Methods

intersects :: Point d r -> Box point -> Bool Source #

(HyperPlane_ boudingHyperPlane d r, Ord r, Num r, Has_ Additive_ d r) => HasIntersectionWith (Point d r) (HalfSpaceF boudingHyperPlane) Source # 
Instance details

Defined in HGeometry.HalfSpace

Methods

intersects :: Point d r -> HalfSpaceF boudingHyperPlane -> Bool Source #

Ord r => HasIntersectionWith (Point 1 r) (HalfOpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.HalfOpen

Methods

intersects :: Point 1 r -> HalfOpenInterval r -> Bool Source #

Ord r => HasIntersectionWith (Point 1 r) (ClosedInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

intersects :: Point 1 r -> ClosedInterval r -> Bool Source #

Ord r => HasIntersectionWith (Point 1 r) (OpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

intersects :: Point 1 r -> OpenInterval r -> Bool Source #

(Point_ point 2 r, Num r, Ord r) => HasIntersectionWith (Point 2 r) (Triangle point) Source # 
Instance details

Defined in HGeometry.Triangle

Methods

intersects :: Point 2 r -> Triangle point -> Bool Source #

(Num r, Eq r) => HasIntersectionWith (HyperPlane 2 r) (HyperPlane 2 r) Source # 
Instance details

Defined in HGeometry.Line.LineEQ

Methods

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

(Ord r, Num r) => HasIntersectionWith (LinePV 2 r) (LinePV 2 r) Source # 
Instance details

Defined in HGeometry.Line.PointAndVector

Methods

intersects :: LinePV 2 r -> LinePV 2 r -> Bool Source #

(Point_ point 2 r, Num r, Ord r, IxValue (endPoint point) ~ point, EndPoint_ (endPoint point)) => HasIntersectionWith (LinePV 2 r) (LineSegment endPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

Methods

intersects :: LinePV 2 r -> LineSegment endPoint point -> Bool Source #

(Point_ point 2 r, Point_ point' 2 r, Num r, Ord r, Functor endPoint, IxValue (endPoint point) ~ point, EndPoint_ (endPoint point), IxValue (endPoint point') ~ point', EndPoint_ (endPoint point'), IxValue (endPoint r) ~ r, EndPoint_ (endPoint r), HasIntersectionWith (Interval endPoint r) (Interval endPoint r)) => HasIntersectionWith (LineSegment endPoint point) (LineSegment endPoint point') Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

Methods

intersects :: LineSegment endPoint point -> LineSegment endPoint point' -> Bool Source #

(HasOnSegment (LineSegment endPoint point) d, Point_ point d r, Fractional r, Ord r) => HasIntersectionWith (Point d r) (LineSegment endPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Internal

Methods

intersects :: Point d r -> LineSegment endPoint point -> Bool Source #

(HasOnSegment (LineSegment endPoint point) 2, Point_ point 2 r, Num r, Ord r, IxValue (endPoint point) ~ point, EndPoint_ (endPoint point)) => HasIntersectionWith (Point 2 r) (LineSegment endPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Internal

Methods

intersects :: Point 2 r -> LineSegment endPoint point -> Bool Source #

Eq r => HasIntersectionWith (VerticalOrLineEQ r :+ extra) (VerticalOrLineEQ r :+ extra') Source # 
Instance details

Defined in HGeometry.Line.General

Methods

intersects :: (VerticalOrLineEQ r :+ extra) -> (VerticalOrLineEQ r :+ extra') -> Bool Source #

HasIntersectionWith geomA geomB => HasIntersectionWith (geomA :+ extra) (geomB :+ extra) Source # 
Instance details

Defined in HGeometry.Intersection

Methods

intersects :: (geomA :+ extra) -> (geomB :+ extra) -> Bool Source #

Ord r => HasIntersectionWith (Point 1 r) (Interval AnEndPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

intersects :: Point 1 r -> Interval AnEndPoint r -> Bool Source #

Ord r => HasIntersectionWith (Interval AnEndPoint r) (ClosedInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => HasIntersectionWith (Interval AnEndPoint r) (OpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => HasIntersectionWith (Interval AnEndPoint r) (Interval AnEndPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

class HasIntersectionWith g h => IsIntersectableWith g h where Source #

Class relationship between intersectable geometric objects.

Methods

intersect :: g -> h -> Intersection g h Source #

Computes te intersection of two geometric objects.

Instances

Instances details
(Point_ point d r, Ord r, Num r, HasComponents (Vector d (Interval_x_IntervalIntersection r (ClosedInterval r))) (Vector d (ClosedInterval r)), HasComponents (Vector d (ClosedInterval r)) (Vector d r), Has_ Vector_ d (ClosedInterval r), Has_ Additive_ d r, Traversable (Vector d), Applicative (Vector d), Zip (Vector d)) => IsIntersectableWith (Box point) (Box point) Source # 
Instance details

Defined in HGeometry.Box.Intersection

Methods

intersect :: Box point -> Box point -> Intersection (Box point) (Box point) Source #

(Point_ point 2 r, Ord r, Fractional r) => IsIntersectableWith (HalfLine point) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

Methods

intersect :: HalfLine point -> Rectangle point -> Intersection (HalfLine point) (Rectangle point) Source #

(Point_ point d r, Point_ point' d r, Ord r, Fractional r, Radical r, Has_ Metric_ d r, MkHyperPlaneConstraints d r, HasSquaredEuclideanDistance point') => IsIntersectableWith (HalfLine point') (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

intersect :: HalfLine point' -> Ball point -> Intersection (HalfLine point') (Ball point) Source #

Ord r => IsIntersectableWith (ClosedInterval r) (ClosedInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Ord r => IsIntersectableWith (OpenInterval r) (OpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

(Fractional r, Ord r, Point_ point 2 r) => IsIntersectableWith (VerticalOrLineEQ r) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

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

Defined in HGeometry.Line.General

(Fractional r, Ord r, Point_ point 2 r) => IsIntersectableWith (LineEQ r) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

Methods

intersect :: LineEQ r -> Rectangle point -> Intersection (LineEQ r) (Rectangle point) Source #

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

Defined in HGeometry.Line.General

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

Defined in HGeometry.Line.LineEQ

Methods

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

(Point_ point 2 r, Fractional r, Ord r) => IsIntersectableWith (LineEQ r) (ClosedLineSegment point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Point_ point 2 r, Fractional r, Ord r) => IsIntersectableWith (LineEQ r) (OpenLineSegment point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Ord r, Fractional r, Point_ point 2 r, IxValue (endPoint point) ~ point, EndPoint_ (endPoint point), IsIntersectableWith (LinePV 2 r) (LineSegment endPoint point), Intersection (LinePV 2 r) (LineSegment endPoint point) ~ Maybe (LineLineSegmentIntersection lineSegment'), NumType lineSegment' ~ r) => IsIntersectableWith (HalfLine point) (LineSegment endPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

Methods

intersect :: HalfLine point -> LineSegment endPoint point -> Intersection (HalfLine point) (LineSegment endPoint point) Source #

(Eq r, Fractional r) => IsIntersectableWith (LineEQ r) (HyperPlane 2 r) Source # 
Instance details

Defined in HGeometry.Line.LineEQ

(Ord r, Fractional r) => IsIntersectableWith (LineEQ r) (LinePV 2 r) Source # 
Instance details

Defined in HGeometry.Line

Methods

intersect :: LineEQ r -> LinePV 2 r -> Intersection (LineEQ r) (LinePV 2 r) Source #

(Point_ point 2 r, Fractional r, Ord r) => IsIntersectableWith (LineEQ r) (LineSegment AnEndPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Point_ point d r, Ord r, Fractional r, Radical r, Has_ Metric_ d r) => IsIntersectableWith (LinePV d r) (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

intersect :: LinePV d r -> Ball point -> Intersection (LinePV d r) (Ball point) Source #

(Fractional r, Ord r, Point_ point 2 r) => IsIntersectableWith (LinePV 2 r) (Rectangle point) Source # 
Instance details

Defined in HGeometry.Box

Methods

intersect :: LinePV 2 r -> Rectangle point -> Intersection (LinePV 2 r) (Rectangle point) Source #

(Ord r, Fractional r, Point_ point 2 r) => IsIntersectableWith (LinePV 2 r) (HalfLine point) Source # 
Instance details

Defined in HGeometry.HalfLine

Methods

intersect :: LinePV 2 r -> HalfLine point -> Intersection (LinePV 2 r) (HalfLine point) Source #

(Point_ point 2 r, Fractional r, Ord r) => IsIntersectableWith (LinePV 2 r) (ClosedLineSegment point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Point_ point 2 r, Fractional r, Ord r) => IsIntersectableWith (LinePV 2 r) (OpenLineSegment point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

Methods

intersect :: LinePV 2 r -> OpenLineSegment point -> Intersection (LinePV 2 r) (OpenLineSegment point) Source #

(Point_ point d r, Ord r, Num r, Has_ Metric_ d r) => IsIntersectableWith (Point d r) (Ball point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

intersect :: Point d r -> Ball point -> Intersection (Point d r) (Ball point) Source #

(Point_ point d r, Eq r, Num r, Has_ Metric_ d r) => IsIntersectableWith (Point d r) (Sphere point) Source # 
Instance details

Defined in HGeometry.Ball.CenterAndRadius

Methods

intersect :: Point d r -> Sphere point -> Intersection (Point d r) (Sphere point) Source #

(Point_ point d r, Num r, Ord r, Foldable1 (Vector d), Zip (Vector d)) => IsIntersectableWith (Point d r) (Box point) Source # 
Instance details

Defined in HGeometry.Box

Methods

intersect :: Point d r -> Box point -> Intersection (Point d r) (Box point) Source #

(HyperPlane_ boudingHyperPlane d r, Ord r, Num r, Has_ Additive_ d r) => IsIntersectableWith (Point d r) (HalfSpaceF boudingHyperPlane) Source # 
Instance details

Defined in HGeometry.HalfSpace

Methods

intersect :: Point d r -> HalfSpaceF boudingHyperPlane -> Intersection (Point d r) (HalfSpaceF boudingHyperPlane) Source #

Ord r => IsIntersectableWith (Point 1 r) (ClosedInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

intersect :: Point 1 r -> ClosedInterval r -> Intersection (Point 1 r) (ClosedInterval r) Source #

Ord r => IsIntersectableWith (Point 1 r) (OpenInterval r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

intersect :: Point 1 r -> OpenInterval r -> Intersection (Point 1 r) (OpenInterval r) Source #

(Ord r, Fractional r) => IsIntersectableWith (LinePV 2 r) (LinePV 2 r) Source # 
Instance details

Defined in HGeometry.Line.PointAndVector

Methods

intersect :: LinePV 2 r -> LinePV 2 r -> Intersection (LinePV 2 r) (LinePV 2 r) Source #

(Point_ point 2 r, Fractional r, Ord r) => IsIntersectableWith (LinePV 2 r) (LineSegment AnEndPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

(Point_ point 2 r, Num r, Ord r, Functor endPoint, IxValue (endPoint point) ~ point, EndPoint_ (endPoint point), IxValue (endPoint r) ~ r, EndPoint_ (endPoint r), HasIntersectionWith (Interval endPoint r) (Interval endPoint r), IxValue (endPoint point) ~ point, IxValue (endPoint (r :+ endPoint point)) ~ (r :+ endPoint point), EndPoint_ (endPoint point), IsEndPoint (endPoint point) (endPoint (r :+ endPoint point)), IsIntersectableWith (LinePV 2 r) (LineSegment endPoint point), Intersection (LinePV 2 r) (LineSegment endPoint point) ~ Maybe (LineLineSegmentIntersection (LineSegment endPoint point)), HasOnSegment (LineSegment endPoint point) 2, IsIntersectableWith (Interval endPoint (r :+ endPoint point)) (Interval endPoint (r :+ endPoint point)), Intersection (LineSegment endPoint point) (LineSegment endPoint point) ~ Maybe (LineSegmentLineSegmentIntersection (LineSegment endPoint point)), EndPoint_ (endPoint (r :+ endPoint point))) => IsIntersectableWith (LineSegment endPoint point) (LineSegment endPoint point) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

Methods

intersect :: LineSegment endPoint point -> LineSegment endPoint point -> Intersection (LineSegment endPoint point) (LineSegment endPoint point) Source #

(Eq r, Fractional r) => IsIntersectableWith (VerticalOrLineEQ r :+ extra) (VerticalOrLineEQ r :+ extra') Source # 
Instance details

Defined in HGeometry.Line.General

Methods

intersect :: (VerticalOrLineEQ r :+ extra) -> (VerticalOrLineEQ r :+ extra') -> Intersection (VerticalOrLineEQ r :+ extra) (VerticalOrLineEQ r :+ extra') Source #

(HasIntersectionWith (LineEQ r :+ extra) (LineEQ r :+ extra'), Fractional r, Eq r) => IsIntersectableWith (LineEQ r :+ extra) (LineEQ r :+ extra') Source # 
Instance details

Defined in HGeometry.Line.LineEQ

Methods

intersect :: (LineEQ r :+ extra) -> (LineEQ r :+ extra') -> Intersection (LineEQ r :+ extra) (LineEQ r :+ extra') Source #

(IsIntersectableWith (LineSegment endPoint point) (LineSegment endPoint point), Intersection (LineSegment endPoint point) (LineSegment endPoint point) ~ Maybe (LineSegmentLineSegmentIntersection (LineSegment endPoint point))) => IsIntersectableWith (LineSegment endPoint point :+ extra) (LineSegment endPoint point :+ extra) Source # 
Instance details

Defined in HGeometry.LineSegment.Intersection

Methods

intersect :: (LineSegment endPoint point :+ extra) -> (LineSegment endPoint point :+ extra) -> Intersection (LineSegment endPoint point :+ extra) (LineSegment endPoint point :+ extra) Source #

Ord r => IsIntersectableWith (Point 1 r) (Interval AnEndPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal

Methods

intersect :: Point 1 r -> Interval AnEndPoint r -> Intersection (Point 1 r) (Interval AnEndPoint r) Source #

Ord r => IsIntersectableWith (Interval AnEndPoint r) (Interval AnEndPoint r) Source # 
Instance details

Defined in HGeometry.Interval.Internal