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

HGeometry.Slab

Description

A data type to represent slabs; i.e. regions bounded by two parallel lines.

Synopsis

Documentation

data Slab r side Source #

A data type representing a slab.

Constructors

Slab !(LinePV 2 r) !r side side 

Instances

Instances details
Functor (Slab r) Source # 
Instance details

Defined in HGeometry.Slab

Methods

fmap :: (a -> b) -> Slab r a -> Slab r b Source #

(<$) :: a -> Slab r b -> Slab r a Source #

Foldable (Slab r) Source # 
Instance details

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 #

sum :: Num a => Slab r a -> a Source #

product :: Num a => Slab r a -> a Source #

(Show r, Show side) => Show (Slab r side) Source # 
Instance details

Defined in HGeometry.Slab

Methods

showsPrec :: Int -> Slab r side -> ShowS Source #

show :: Slab r side -> String Source #

showList :: [Slab r side] -> ShowS Source #

(Ord r, Num r, Eq side) => Eq (Slab r side) Source # 
Instance details

Defined in HGeometry.Slab

Methods

(==) :: Slab r side -> Slab r side -> Bool Source #

(/=) :: Slab r side -> Slab r side -> Bool Source #

type Dimension (Slab r side) Source # 
Instance details

Defined in HGeometry.Slab

type Dimension (Slab r side) = 2
type NumType (Slab r side) Source # 
Instance details

Defined in HGeometry.Slab

type NumType (Slab r side) = r

definingLine :: forall r side f. Functor f => (LinePV 2 r -> f (LinePV 2 r)) -> Slab r side -> f (Slab r side) Source #

squaredWidth :: forall r side f. Functor f => (r -> f 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.

leftBoundary :: Slab r side -> LinePV 2 r :+ side Source #

Get the left boundary of the slab

rightBoundary :: (Fractional r, Radical r) => Slab r side -> LinePV 2 r :+ side Source #

Get the right boundary of the slab