| Copyright | (C) Frank Staals |
|---|---|
| License | see the LICENSE file |
| Maintainer | Frank Staals |
| Safe Haskell | None |
| Language | GHC2024 |
HGeometry.Slab
Description
A data type to represent slabs; i.e. regions bounded by two parallel lines.
Synopsis
- data Slab r side = Slab !(LinePV 2 r) !r side side
- definingLine :: forall r side f. Functor f => (LinePV 2 r -> f (LinePV 2 r)) -> Slab r side -> f (Slab r side)
- squaredWidth :: forall r side f. Functor f => (r -> f r) -> Slab r side -> f (Slab r side)
- leftData :: forall r side f. Functor f => (side -> f side) -> Slab r side -> f (Slab r side)
- rightData :: forall r side f. Functor f => (side -> f side) -> Slab r side -> f (Slab r side)
- fromParalelHalfplanes :: (HalfPlane_ halfPlane r, Num r, Fractional r, HasIntersectionWith (Point 2 r) halfPlane, HasSupportingLine (BoundingHyperPlane halfPlane 2 r)) => halfPlane -> halfPlane -> Slab r halfPlane
- leftBoundary :: Slab r side -> LinePV 2 r :+ side
- rightBoundary :: (Fractional r, Radical r) => Slab r side -> LinePV 2 r :+ side
Documentation
A data type representing a slab.
Instances
| Functor (Slab r) Source # | |
| Foldable (Slab r) Source # | |
Defined in HGeometry.Slab Methods fold :: Monoid m => Slab r m -> m Source # foldMap :: Monoid m => (a -> m) -> Slab r a -> m Source # foldMap' :: Monoid m => (a -> m) -> Slab r a -> m Source # foldr :: (a -> b -> b) -> b -> Slab r a -> b Source # foldr' :: (a -> b -> b) -> b -> Slab r a -> b Source # foldl :: (b -> a -> b) -> b -> Slab r a -> b Source # foldl' :: (b -> a -> b) -> b -> Slab r a -> b Source # foldr1 :: (a -> a -> a) -> Slab r a -> a Source # foldl1 :: (a -> a -> a) -> Slab r a -> a Source # toList :: Slab r a -> [a] Source # null :: Slab r a -> Bool Source # length :: Slab r a -> Int Source # elem :: Eq a => a -> Slab r a -> Bool Source # maximum :: Ord a => Slab r a -> a Source # minimum :: Ord a => Slab r a -> a Source # | |
| (Show r, Show side) => Show (Slab r side) Source # | |
| (Ord r, Num r, Eq side) => Eq (Slab r side) Source # | |
| type Dimension (Slab r side) Source # | |
Defined in HGeometry.Slab | |
| type NumType (Slab r side) Source # | |
Defined in HGeometry.Slab | |
definingLine :: forall r side f. Functor f => (LinePV 2 r -> f (LinePV 2 r)) -> Slab r side -> f (Slab r side) Source #
leftData :: forall r side f. Functor f => (side -> f side) -> Slab r side -> f (Slab r side) Source #
rightData :: forall r side f. Functor f => (side -> f side) -> Slab r side -> f (Slab r side) Source #
fromParalelHalfplanes :: (HalfPlane_ halfPlane r, Num r, Fractional r, HasIntersectionWith (Point 2 r) halfPlane, HasSupportingLine (BoundingHyperPlane halfPlane 2 r)) => halfPlane -> halfPlane -> Slab r halfPlane Source #
Create a slab out of two halfplanes whose bounding lines are parallel.
rightBoundary :: (Fractional r, Radical r) => Slab r side -> LinePV 2 r :+ side Source #
Get the right boundary of the slab