使用 ObjLoader Three.js 后如何计算边界框

sha*_*ill 2 javascript three.js

我在尝试使用 OBJLoader 加载模型后获取模型几何的边界框时遇到了问题。到目前为止我有:

var loader = new THREE.OBJLoader();
loader.load( mURL, function ( object ) {

for ( var i = 0, l = object.children.length; i < l; i ++ ) {
    geometry = object.children[0].geometry;         
    bBox = geometry.computeBoundingBox();
    console.log("have a box of "+bBox);
}
//...rest of function
Run Code Online (Sandbox Code Playgroud)

但是当我将 bBox 写入控制台时,它是未定义的。在这种情况下,几何图形不是访问的正确属性吗?

mrd*_*oob 5

我认为这样的事情应该可以解决问题:

var loader = new THREE.OBJLoader();
loader.load( mURL, function ( object ) {

    THREE.SceneUtils.traverseHierarchy( object, function ( child ) {

        if ( child instanceof THREE.Mesh ) {

            child.geometry.computeBoundingBox();

        }

    }

}
Run Code Online (Sandbox Code Playgroud)