JavaScript - Three.js使用BufferGeometry计算Object3D的边界框

时间:2014-08-11 21:11:43

标签: javascript three.js

我有一个Object3D,有很多级别的孩子(更多的Object3Ds或Meshes / Lines)。 Box3类有一个setFromObject()方法,它将计算一个对象及其所有后代的边界框。这是我正在寻找的行为。

但是,我无法使用setFromObject()的{​​{1}}方法,因为我没有使用Box3个对象。相反,我正在处理的项目仅使用GeometryBufferGeometry个对象没有BufferGeometry属性,这是.vertices函数在计算边界框时所查找的属性。

setFromObject()

我一直在尝试使用var bbox = new THREE.Box3().setFromObject(object); console.log(bbox.min); // x, y, and z are all Infinity. console.log(bbox.max); // x, y, and z are all -Infinity. 的{​​{1}}方法,但是在操作几何体时似乎没有更新边界框。我认为它可能与computeBoundingBox() BufferGeometry有关,但我也尝试明确调用matrixAutoUpdate无效。

如果使用false类,有没有办法计算updateMatrix()及其所有后代的边界框?我是Three.js的新手,所以任何帮助都会受到赞赏!

我正在使用Three.js r66。

1 个答案:

答案 0 :(得分:1)

Box3.setFromObject( object )现在支持BufferGeometry

three.js r.69dev(开发版)