| Portability | non-portable |
|---|---|
| Stability | provisional |
| Maintainer | Fumiaki Kinoshita <fumiexcel@gmail.com> |
| Safe Haskell | None |
Data.BoundingBox.Dim2
Description
The type and accessors for 2D bounding boxes
- data BoundingBox a = BoundingBox !a !a !a !a
- inBoundingBox :: Ord a => V2 a -> BoundingBox a -> Bool
- intersect :: Ord a => BoundingBox a -> BoundingBox a -> Maybe (BoundingBox a)
- enclose :: (Num a, Ord a) => V2 a -> BoundingBox a -> BoundingBox a
- _TLBR :: Iso' (BoundingBox a) (V2 a, V2 a)
- _BLTR :: Iso' (BoundingBox a) (V2 a, V2 a)
- _Corners :: Traversal' (BoundingBox a) (V2 a)
- data Reference
- sizePos :: Fractional a => Reference -> Iso' (BoundingBox a) (V2 a, V2 a)
- position :: Fractional a => Reference -> Lens' (BoundingBox a) (V2 a)
- size :: Fractional a => Reference -> Lens' (BoundingBox a) (V2 a)
Documentation
data BoundingBox a
Constructors
| BoundingBox !a !a !a !a |
Instances
| Functor BoundingBox | |
| Typeable1 BoundingBox | |
| Applicative BoundingBox | |
| Foldable BoundingBox | |
| Traversable BoundingBox | |
| Eq a => Eq (BoundingBox a) | |
| Ord a => Ord (BoundingBox a) | |
| Read a => Read (BoundingBox a) | |
| Show a => Show (BoundingBox a) |
inBoundingBox :: Ord a => V2 a -> BoundingBox a -> Bool
Determine whether the given point is in the BoundingBox.
intersect :: Ord a => BoundingBox a -> BoundingBox a -> Maybe (BoundingBox a)
Intersection between two boundingboxes.
enclose :: (Num a, Ord a) => V2 a -> BoundingBox a -> BoundingBox a
_TLBR :: Iso' (BoundingBox a) (V2 a, V2 a)
fst----+ | | +----snd
_BLTR :: Iso' (BoundingBox a) (V2 a, V2 a)
+----snd | | fst----+
_Corners :: Traversal' (BoundingBox a) (V2 a)
data Reference
The type of reference points.
TL--T--TR
| |
L C R
| |
BL--B--BR
sizePos :: Fractional a => Reference -> Iso' (BoundingBox a) (V2 a, V2 a)
position :: Fractional a => Reference -> Lens' (BoundingBox a) (V2 a)
size :: Fractional a => Reference -> Lens' (BoundingBox a) (V2 a)