Axis aligned bounding boxes for fun and profit.
import aabb from 'aabb-3d'
const bounding_box = new aabb([0, 0, 0], [12, 12, 12]) // x, y, z == 0; width, height, depth == 12
const other = new aabb([10, 10, 10], [2, 2, 2])
bounding_box.intersects(other) // true
bounding_box.translate([2, 2, 2]) // moves the bounding box
bounding_box.expand(other) // returns a new aabb that surrounds both bboxes
returns a new aabb.
returns:
x0/y1/z1---x1/y1/z1
depth-> / /|
/ / |
x0/y1/z0 -- x1/y1/z0
| | |
| | <-- height
| | /
| | /
x0/y0/z0 ----- x1/y0/z0
^
|
width
moves the box. returns itself.
returns true if the two bounding boxes intersect (or touch at all.)
returns a new aabb
representing the shared area of the
two aabb's. returns null
if the boxes don't intersect.
returns a new aabb
that surrounds both aabbs.
MIT