Box3.expandByObject() 是 three.js 库中的一个方法,用于将一个 Object3D 对象的包围盒范围(Box3)扩展至包含该对象及其所有子对象的范围。
expandByObject( object )
object:要扩展包围盒的 Object3D 对象。const box = new THREE.Box3();
const obj = new THREE.Object3D();
obj.position.set(1, 2, 3);
obj.scale.set(2, 2, 2);
box.expandByObject(obj);
console.log(box.min); // Vector3(-1, 0, 1)
console.log(box.max); // Vector3(3, 6, 9)
Box3.expandByObject() 方法会遍历 object 对象及其所有子对象,并将它们的范围合并到 Box3 包围盒中。
在合并子对象的包围盒时,所有子对象都将被展开,并且从它们的世界坐标系上的位置重新计算。然后,所有子对象的包围盒将合并到当前 Box3 包围盒中。
如果需要在添加完所有子对象后手动重新计算 Box3 包围盒,可以使用 Box3.makeEmpty() 和 Box3.expandByPoint() 方法重新设置。
如果 object 中有网格(Mesh)对象,则使用他们的位置和几何信息来计算包围盒。