diff --git a/src/core/BufferGeometry.js b/src/core/BufferGeometry.js index 6c40b133fe951e3777b399438bf7afe508b3aebf..08bfb2fc65cb608a38044dded6309e6747de7a9b 100644 --- a/src/core/BufferGeometry.js +++ b/src/core/BufferGeometry.js @@ -563,13 +563,33 @@ THREE.BufferGeometry.prototype = { var bb = this.boundingBox; bb.makeEmpty(); + var minX = +Infinity; + var minY = +Infinity; + var minZ = +Infinity; + + var maxX = -Infinity; + var maxY = -Infinity; + var maxZ = -Infinity; + for ( var i = 0, il = positions.length; i < il; i += 3 ) { - vector.fromArray( positions, i ); - bb.expandByPoint( vector ); + var x = positions[ i ]; + var y = positions[ i + 1 ]; + var z = positions[ i + 2 ]; + + minX = Math.min( minX, x ); + minY = Math.min( minY, y ); + minZ = Math.min( minZ, z ); + + maxX = Math.max( maxX, x ); + maxY = Math.max( maxY, y ); + maxZ = Math.max( maxZ, z ); } + this.boundingBox.min.set( minX, minY, minZ ); + this.boundingBox.max.set( maxX, maxY, maxZ ); + } if ( positions === undefined || positions.length === 0 ) {