Portability | GHC only |
---|---|
Stability | experimental |
Maintainer | stephen.tetley@gmail.com |
Bounding box with no notion of 'empty'.
- data BoundingBox a = BBox {}
- type DBoundingBox = BoundingBox Double
- data CardinalPoint
- class Boundary a where
- boundary :: a -> BoundingBox (DUnit a)
- bbox :: Point2 a -> Point2 a -> BoundingBox a
- obbox :: Num a => a -> a -> BoundingBox a
- union :: Ord a => BoundingBox a -> BoundingBox a -> BoundingBox a
- trace :: (Num a, Ord a) => [Point2 a] -> BoundingBox a
- corners :: BoundingBox a -> [Point2 a]
- lowerLeftUpperRight :: (a, a, a, a) -> BoundingBox a -> (a, a, a, a)
- withinBB :: Ord a => Point2 a -> BoundingBox a -> Bool
- boundaryWidth :: Num a => BoundingBox a -> a
- boundaryHeight :: Num a => BoundingBox a -> a
- boundaryBottomLeft :: BoundingBox a -> Point2 a
- boundaryTopRight :: BoundingBox a -> Point2 a
- boundaryTopLeft :: BoundingBox a -> Point2 a
- boundaryBottomRight :: BoundingBox a -> Point2 a
- boundaryPoint :: Fractional a => CardinalPoint -> BoundingBox a -> Point2 a
- leftPlane :: BoundingBox a -> a
- rightPlane :: BoundingBox a -> a
- lowerPlane :: BoundingBox a -> a
- upperPlane :: BoundingBox a -> a
Types
data BoundingBox a Source
Bounding box of a picture.
We cannot construct empty pictures - so bounding boxes too a saved the obligation to be empty.
Eq a => Eq (BoundingBox a) | |
Show a => Show (BoundingBox a) | |
Ord a => Semigroup (BoundingBox a) | |
Pretty a => Pretty (BoundingBox a) | |
Pointwise (BoundingBox a) | |
(Num u, Ord u) => Scale (BoundingBox u) |
type DBoundingBox = BoundingBox DoubleSource
Type class
boundary :: a -> BoundingBox (DUnit a)Source
Operations
bbox :: Point2 a -> Point2 a -> BoundingBox aSource
obbox :: Num a => a -> a -> BoundingBox aSource
Create a BoundingBox with bottom left corner at the origin,
and dimensions w
and h
.
union :: Ord a => BoundingBox a -> BoundingBox a -> BoundingBox aSource
corners :: BoundingBox a -> [Point2 a]Source
lowerLeftUpperRight :: (a, a, a, a) -> BoundingBox a -> (a, a, a, a)Source
boundaryWidth :: Num a => BoundingBox a -> aSource
boundaryHeight :: Num a => BoundingBox a -> aSource
boundaryBottomLeft :: BoundingBox a -> Point2 aSource
boundaryTopRight :: BoundingBox a -> Point2 aSource
boundaryTopLeft :: BoundingBox a -> Point2 aSource
boundaryBottomRight :: BoundingBox a -> Point2 aSource
boundaryPoint :: Fractional a => CardinalPoint -> BoundingBox a -> Point2 aSource
leftPlane :: BoundingBox a -> aSource
rightPlane :: BoundingBox a -> aSource
lowerPlane :: BoundingBox a -> aSource
upperPlane :: BoundingBox a -> aSource