diff --git a/examples/webgl_helpers.html b/examples/webgl_helpers.html index 6046d782d5d391d8b239c104c1eaea33abd15988..02e4eea10701f93916e2bdb11fae510c722ee98d 100644 --- a/examples/webgl_helpers.html +++ b/examples/webgl_helpers.html @@ -84,6 +84,10 @@ line.material.transparent = true; line.position.x = -4; group.add( line ); + + scene.add( new THREE.BoxHelper( group ) ); + scene.add( new THREE.BoxHelper( scene ) ); + } ); diff --git a/src/extras/helpers/BoxHelper.js b/src/extras/helpers/BoxHelper.js index 4f02395fa71b51e1322dc775272964ac97a3ed9f..56d7e9c67b9138f0021d47bd829a0cc8a338311c 100644 --- a/src/extras/helpers/BoxHelper.js +++ b/src/extras/helpers/BoxHelper.js @@ -22,17 +22,31 @@ THREE.BoxHelper.prototype.constructor = THREE.BoxHelper; THREE.BoxHelper.prototype.update = function ( object ) { - var geometry = object.geometry; - - if ( geometry.boundingBox === null ) { - - geometry.computeBoundingBox(); - + var min, max; + if ( object.type == 'Mesh') { + + var geometry = object.geometry; + + if ( geometry.boundingBox === null ) { + + geometry.computeBoundingBox(); + + } + + min = geometry.boundingBox.min; + max = geometry.boundingBox.max; + + this.matrix = object.matrixWorld; + this.matrixAutoUpdate = false; + + } else { + + var box = new THREE.Box3().setFromObject(object); + min = box.min; + max = box.max; + } - var min = geometry.boundingBox.min; - var max = geometry.boundingBox.max; - /* 5____4 1/___0/| @@ -95,7 +109,4 @@ THREE.BoxHelper.prototype.update = function ( object ) { this.geometry.computeBoundingSphere(); - this.matrix = object.matrixWorld; - this.matrixAutoUpdate = false; - };