Eixos alinhados com caixas delimitadoras para diversão e lucro.
var aabb = require ( 'aabb-3d' )
var bounding_box = aabb ( [ 0 , 0 , 0 ] , [ 12 , 12 , 12 ] ) // x, y, z == 0; width, height, depth == 12
, other = 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
Retorna um novo AABB.
Retornos:
x0/y1/z1---x1/y1/z1
depth-> / /|
/ / |
x0/y1/z0 -- x1/y1/z0
| | |
| | <-- height
| | /
| | /
x0/y0/z0 ----- x1/y0/z0
^
|
width
move a caixa. retorna.
Retorna True se as duas caixas delimitadoras cruzarem (ou toquem.)
Retorna um novo aabb
representando a área compartilhada dos dois AABB. retorna null
se as caixas não se cruzarem.
Retorna um novo aabb
que envolve os dois AABBs.
Mit