Copyright | (C) Frank Staals |
---|---|
License | see the LICENSE file |
Maintainer | Frank Staals |
Safe Haskell | None |
Language | GHC2021 |
HGeometry.Triangle
Description
Data types to represent Triangles
Synopsis
- data Triangle point where
- module HGeometry.Triangle.Class
- data LineTriangleIntersection point seg
- = Line_x_Triangle_Point point
- | Line_x_Triangle_LineSegment seg
Documentation
data Triangle point where Source #
Triangles in d-dimensional space
Bundled Patterns
pattern Triangle :: point -> point -> point -> Triangle point | Construct a triangle from its three points |
Instances
Foldable1 Triangle Source # | |||||||||
Defined in HGeometry.Triangle Methods fold1 :: Semigroup m => Triangle m -> m # foldMap1 :: Semigroup m => (a -> m) -> Triangle a -> m # foldMap1' :: Semigroup m => (a -> m) -> Triangle a -> m # toNonEmpty :: Triangle a -> NonEmpty a # maximum :: Ord a => Triangle a -> a # minimum :: Ord a => Triangle a -> a # foldrMap1 :: (a -> b) -> (a -> b -> b) -> Triangle a -> b # foldlMap1' :: (a -> b) -> (b -> a -> b) -> Triangle a -> b # foldlMap1 :: (a -> b) -> (b -> a -> b) -> Triangle a -> b # foldrMap1' :: (a -> b) -> (a -> b -> b) -> Triangle a -> b # | |||||||||
Functor Triangle Source # | |||||||||
Foldable Triangle Source # | |||||||||
Defined in HGeometry.Triangle Methods fold :: Monoid m => Triangle m -> m # foldMap :: Monoid m => (a -> m) -> Triangle a -> m # foldMap' :: Monoid m => (a -> m) -> Triangle a -> m # foldr :: (a -> b -> b) -> b -> Triangle a -> b # foldr' :: (a -> b -> b) -> b -> Triangle a -> b # foldl :: (b -> a -> b) -> b -> Triangle a -> b # foldl' :: (b -> a -> b) -> b -> Triangle a -> b # foldr1 :: (a -> a -> a) -> Triangle a -> a # foldl1 :: (a -> a -> a) -> Triangle a -> a # elem :: Eq a => a -> Triangle a -> Bool # maximum :: Ord a => Triangle a -> a # minimum :: Ord a => Triangle a -> a # | |||||||||
Traversable Triangle Source # | |||||||||
Traversable1 Triangle Source # | |||||||||
Generic (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle Associated Types
| |||||||||
Read point => Read (Triangle point) Source # | |||||||||
Show point => Show (Triangle point) Source # | |||||||||
Eq (Vector 3 point) => Eq (Triangle point) Source # | |||||||||
Ord (Vector 3 point) => Ord (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle Methods compare :: Triangle point -> Triangle point -> Ordering # (<) :: Triangle point -> Triangle point -> Bool # (<=) :: Triangle point -> Triangle point -> Bool # (>) :: Triangle point -> Triangle point -> Bool # (>=) :: Triangle point -> Triangle point -> Bool # | |||||||||
(Point_ point d r, Ord (Vector d r)) => IsBoxable (Triangle point) Source # | |||||||||
(DefaultTransformByConstraints (Triangle point) d r, Point_ point d r) => IsTransformable (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle Methods transformBy :: Transformation (Dimension (Triangle point)) (NumType (Triangle point)) -> Triangle point -> Triangle point Source # | |||||||||
HasVertices' (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle Associated Types
| |||||||||
Reversing (Triangle point) Source # | |||||||||
Point_ vertex 3 r => CanComputeNormalVector (Triangle vertex) r Source # | |||||||||
Defined in HGeometry.Direction Methods normalUnitVectorAt :: forall point (d :: Nat). (Point_ point d r, Has_ Metric_ d r, d ~ Dimension (Triangle vertex), Radical r, Fractional r) => point -> Triangle vertex -> Vector d r Source # normalVectorAt :: forall point (d :: Nat). (Point_ point d r, d ~ Dimension (Triangle vertex), Num r) => point -> Triangle vertex -> Vector d r Source # | |||||||||
Point_ point (Dimension point) (NumType point) => Triangle_ (Triangle point) point Source # | |||||||||
(Point_ point 3 r, Point_ point' 3 r, Fractional r, Ord r) => HasIntersectionWith (HalfLine point) (Triangle point') Source # | |||||||||
Defined in HGeometry.Triangle | |||||||||
(Point_ point 3 r, Point_ point' 3 r, Fractional r, Ord r) => IsIntersectableWith (HalfLine point) (Triangle point') Source # | |||||||||
Defined in HGeometry.Triangle | |||||||||
HasVertices (Triangle point) (Triangle point') Source # | |||||||||
HasPoints (Triangle point) (Triangle point') point point' Source # | |||||||||
Defined in HGeometry.Triangle | |||||||||
(Point_ point 3 r, Fractional r, Ord r) => HasIntersectionWith (LinePV 3 r) (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle | |||||||||
(Point_ point 2 r, Num r, Ord r) => HasIntersectionWith (Point 2 r) (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle | |||||||||
(Point_ point 3 r, Fractional r, Ord r) => IsIntersectableWith (LinePV 3 r) (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle | |||||||||
type Rep (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle | |||||||||
type Dimension (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle type Dimension (Triangle point) = Dimension point | |||||||||
type NumType (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle type NumType (Triangle point) = NumType point | |||||||||
type Vertex (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle | |||||||||
type VertexIx (Triangle point) Source # | |||||||||
Defined in HGeometry.Triangle | |||||||||
type Intersection (HalfLine point) (Triangle point') Source # | Same here, we also return the parameter at which the ray intersects the point | ||||||||
Defined in HGeometry.Triangle type Intersection (HalfLine point) (Triangle point') = Maybe (LineTriangleIntersection (Point 3 (NumType point) :+ NumType point) (ClosedLineSegment (Point 3 (NumType point) :+ NumType point))) | |||||||||
type Intersection (LinePV 3 r) (Triangle point') Source # | The extra value is the parameter t so that the intersection point is line^.anchor + t*line^.direction | ||||||||
Defined in HGeometry.Triangle type Intersection (LinePV 3 r) (Triangle point') = Maybe (LineTriangleIntersection (Point 3 r :+ r) (ClosedLineSegment (Point 3 r :+ r))) |
module HGeometry.Triangle.Class
data LineTriangleIntersection point seg Source #
Data type desciribn the intersection between an oriented line in R^3 and a triangle
Constructors
Line_x_Triangle_Point point | |
Line_x_Triangle_LineSegment seg |