Browse Source

Merge pull request #6853 from gero3/BoxHelper

Make BoxHelper workable with Object3D
Ricardo Cabello 10 years ago
parent
commit
3f27f9440c
2 changed files with 12 additions and 12 deletions
  1. 9 0
      examples/webgl_helpers.html
  2. 3 12
      src/extras/helpers/BoxHelper.js

+ 9 - 0
examples/webgl_helpers.html

@@ -57,6 +57,9 @@
 					var group = new THREE.Group();
 					group.scale.multiplyScalar( 50 );
 					scene.add( group );
+					
+					// To make sure that the matrixWorld is up to date for the boxhelpers
+					group.updateMatrixWorld(true);
 
 					var mesh = new THREE.Mesh( geometry, material );
 					group.add( mesh );
@@ -76,6 +79,7 @@
 					line.material.transparent = true;
 					line.position.x = 4;
 					group.add( line );
+					scene.add( new THREE.BoxHelper( line ) );
 
 					var edges = new THREE.EdgesGeometry( geometry );
 					var line = new THREE.LineSegments( edges );
@@ -84,6 +88,11 @@
 					line.material.transparent = true;
 					line.position.x = -4;
 					group.add( line );
+					scene.add( new THREE.BoxHelper( line ) );
+					
+					scene.add( new THREE.BoxHelper( group ) );
+					scene.add( new THREE.BoxHelper( scene ) );
+					
 
 				} );
 

+ 3 - 12
src/extras/helpers/BoxHelper.js

@@ -22,16 +22,10 @@ THREE.BoxHelper.prototype.constructor = THREE.BoxHelper;
 
 THREE.BoxHelper.prototype.update = function ( object ) {
 
-	var geometry = object.geometry;
+	var box = new THREE.Box3().setFromObject(object);
+	var min = box.min;
+	var max = box.max;
 
-	if ( geometry.boundingBox === null ) {
-
-		geometry.computeBoundingBox();
-
-	}
-
-	var min = geometry.boundingBox.min;
-	var max = geometry.boundingBox.max;
 
 	/*
 	  5____4
@@ -95,7 +89,4 @@ THREE.BoxHelper.prototype.update = function ( object ) {
 
 	this.geometry.computeBoundingSphere();
 
-	this.matrix = object.matrixWorld;
-	this.matrixAutoUpdate = false;
-
 };