แกนจัดแนวกล่องขอบเขตเพื่อความสนุกสนานและผลกำไร
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
ส่งคืน AABB ใหม่
ผลตอบแทน:
x0/y1/z1---x1/y1/z1
depth-> / /|
/ / |
x0/y1/z0 -- x1/y1/z0
| | |
| | <-- height
| | /
| | /
x0/y0/z0 ----- x1/y0/z0
^
|
width
ย้ายกล่อง ส่งคืนตัวเอง
ส่งคืนจริงถ้ากล่องสองจุดตัดกัน (หรือสัมผัสเลย)
ส่งคืน aabb
ใหม่ที่เป็นตัวแทนของพื้นที่ที่ใช้ร่วมกันของทั้งสอง AABB ส่งคืน null
ถ้ากล่องไม่ตัดกัน
ส่งคืน aabb
ใหม่ที่ล้อมรอบทั้ง AABBS
มิกซ์