Safe Haskell | Safe-Infered |
---|
This module provides the BBox2
type for 2-dimensional bounding boxes.
- data BBox2 = BBox2 {}
- rangeX :: BBox2 -> Range
- rangeY :: BBox2 -> Range
- rangeXY :: Range -> Range -> BBox2
- bound_corners :: Vector2 -> Vector2 -> BBox2
- bound_points :: [Vector2] -> BBox2
- within_bounds :: Vector2 -> BBox2 -> Bool
- min_point :: BBox2 -> Vector2
- max_point :: BBox2 -> Vector2
- union :: BBox2 -> BBox2 -> BBox2
- isect :: BBox2 -> BBox2 -> Maybe BBox2
- unions :: [BBox2] -> BBox2
Documentation
A BBox2
is a 2D bounding box (aligned to the coordinate axies).
rangeXY :: Range -> Range -> BBox2Source
Given ranges for each coordinate axis, construct a bounding box.
bound_corners :: Vector2 -> Vector2 -> BBox2Source
Given a pair of corner points, construct a bounding box. (The points must be from opposite corners, but it doesn't matter which corners nor which order they are given in.)
bound_points :: [Vector2] -> BBox2Source
Find the bounds of a list of points. (Throws an exception if the list is empty.)
within_bounds :: Vector2 -> BBox2 -> BoolSource
Test whether a given 2D vector is inside this bounding box.
min_point :: BBox2 -> Vector2Source
Return the minimum values for both coordinates. (In usual 2D space, the bottom-left corner point.)
max_point :: BBox2 -> Vector2Source
Return the maximum values for both coordinates. (In usual 2D space, the top-right corner point.)
union :: BBox2 -> BBox2 -> BBox2Source
Take the union of two bounding boxes. The result is a new bounding box that contains all the points the original boxes contained, plus any extra space between them.