| Copyright | (C) Frank Staals |
|---|---|
| License | see the LICENSE file |
| Maintainer | Frank Staals |
| Safe Haskell | None |
| Language | GHC2024 |
HGeometry.Cone
Description
A Data type to represent Cones
Synopsis
- data Cone r point edge = Cone point (Vector 2 r :+ edge) (Vector 2 r :+ edge)
- apex :: forall r point1 edge point2 f. Functor f => (point1 -> f point2) -> Cone r point1 edge -> f (Cone r point2 edge)
- leftBoundaryVector :: forall r point edge f. Functor f => ((Vector 2 r :+ edge) -> f (Vector 2 r :+ edge)) -> Cone r point edge -> f (Cone r point edge)
- rightBoundaryVector :: forall r point edge f. Functor f => ((Vector 2 r :+ edge) -> f (Vector 2 r :+ edge)) -> Cone r point edge -> f (Cone r point edge)
- leftBoundary :: (Dimension point ~ 2, NumType point ~ r) => Cone r point edge -> HalfLine point :+ edge
- rightBoundary :: (Dimension point ~ 2, NumType point ~ r) => Cone r point edge -> HalfLine point :+ edge
- coneBisector :: (Point_ point 2 r, Num r) => Cone r point edge -> HalfLine point
- intersectingHalfplanes :: (Point_ point 2 r, Num r, Ord r) => Cone r point edge -> Vector 2 (HalfSpaceF (LinePV 2 r))
Documentation
data Cone r point edge Source #
A Cone
Instances
| Bifoldable (Cone r) Source # | |
Defined in HGeometry.Cone | |
| Bifunctor (Cone r) Source # | |
| Bitraversable (Cone r) Source # | |
Defined in HGeometry.Cone Methods bitraverse :: Applicative f => (a -> f c) -> (b -> f d) -> Cone r a b -> f (Cone r c d) Source # | |
| Functor (Cone r point) Source # | |
| Foldable (Cone r point) Source # | |
Defined in HGeometry.Cone Methods fold :: Monoid m => Cone r point m -> m Source # foldMap :: Monoid m => (a -> m) -> Cone r point a -> m Source # foldMap' :: Monoid m => (a -> m) -> Cone r point a -> m Source # foldr :: (a -> b -> b) -> b -> Cone r point a -> b Source # foldr' :: (a -> b -> b) -> b -> Cone r point a -> b Source # foldl :: (b -> a -> b) -> b -> Cone r point a -> b Source # foldl' :: (b -> a -> b) -> b -> Cone r point a -> b Source # foldr1 :: (a -> a -> a) -> Cone r point a -> a Source # foldl1 :: (a -> a -> a) -> Cone r point a -> a Source # toList :: Cone r point a -> [a] Source # null :: Cone r point a -> Bool Source # length :: Cone r point a -> Int Source # elem :: Eq a => a -> Cone r point a -> Bool Source # maximum :: Ord a => Cone r point a -> a Source # minimum :: Ord a => Cone r point a -> a Source # | |
| Traversable (Cone r point) Source # | |
Defined in HGeometry.Cone Methods traverse :: Applicative f => (a -> f b) -> Cone r point a -> f (Cone r point b) Source # sequenceA :: Applicative f => Cone r point (f a) -> f (Cone r point a) Source # mapM :: Monad m => (a -> m b) -> Cone r point a -> m (Cone r point b) Source # sequence :: Monad m => Cone r point (m a) -> m (Cone r point a) Source # | |
| (Point_ point 2 r, Num r, Ord r) => HasIntersectionWith (Point 2 r) (Cone r point edge) Source # | |
Defined in HGeometry.Cone | |
| (Show point, Show r, Show edge) => Show (Cone r point edge) Source # | |
| (Eq point, Eq r, Eq edge) => Eq (Cone r point edge) Source # | |
| (Ord point, Ord r, Ord edge) => Ord (Cone r point edge) Source # | |
Defined in HGeometry.Cone Methods compare :: Cone r point edge -> Cone r point edge -> Ordering Source # (<) :: Cone r point edge -> Cone r point edge -> Bool Source # (<=) :: Cone r point edge -> Cone r point edge -> Bool Source # (>) :: Cone r point edge -> Cone r point edge -> Bool Source # (>=) :: Cone r point edge -> Cone r point edge -> Bool Source # max :: Cone r point edge -> Cone r point edge -> Cone r point edge Source # min :: Cone r point edge -> Cone r point edge -> Cone r point edge Source # | |
| type Dimension (Cone r point edge) Source # | |
Defined in HGeometry.Cone | |
| type NumType (Cone r point edge) Source # | |
Defined in HGeometry.Cone | |
apex :: forall r point1 edge point2 f. Functor f => (point1 -> f point2) -> Cone r point1 edge -> f (Cone r point2 edge) Source #
leftBoundaryVector :: forall r point edge f. Functor f => ((Vector 2 r :+ edge) -> f (Vector 2 r :+ edge)) -> Cone r point edge -> f (Cone r point edge) Source #
rightBoundaryVector :: forall r point edge f. Functor f => ((Vector 2 r :+ edge) -> f (Vector 2 r :+ edge)) -> Cone r point edge -> f (Cone r point edge) Source #
leftBoundary :: (Dimension point ~ 2, NumType point ~ r) => Cone r point edge -> HalfLine point :+ edge Source #
Get the left boundary as a HalfLine starting at the apex.
rightBoundary :: (Dimension point ~ 2, NumType point ~ r) => Cone r point edge -> HalfLine point :+ edge Source #
Get the left boundary as a HalfLine starting at the apex.
coneBisector :: (Point_ point 2 r, Num r) => Cone r point edge -> HalfLine point Source #
Get the bisector of the cone
intersectingHalfplanes :: (Point_ point 2 r, Num r, Ord r) => Cone r point edge -> Vector 2 (HalfSpaceF (LinePV 2 r)) Source #
Get the two halfplanes so that the cone is the intersection of the two halfplanes. the first halfplane is the plane right of the left boundary, whereas the second halfplane is the plane left of the right boundary.