Browse Source

Box3: Added setFromArray. See #7974.

Mr.doob 9 years ago
parent
commit
9d9e7d0a02
2 changed files with 34 additions and 29 deletions
  1. 1 29
      src/core/BufferGeometry.js
  2. 33 0
      src/math/Box3.js

+ 1 - 29
src/core/BufferGeometry.js

@@ -560,35 +560,7 @@ THREE.BufferGeometry.prototype = {
 
 			if ( positions ) {
 
-				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 ) {
-
-					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 );
+				this.boundingBox.setFromArray( positions );
 
 			}
 

+ 33 - 0
src/math/Box3.js

@@ -23,6 +23,39 @@ THREE.Box3.prototype = {
 
 	},
 
+	setFromArray: function ( array ) {
+
+		this.makeEmpty();
+
+		var minX = + Infinity;
+		var minY = + Infinity;
+		var minZ = + Infinity;
+
+		var maxX = - Infinity;
+		var maxY = - Infinity;
+		var maxZ = - Infinity;
+
+		for ( var i = 0, il = array.length; i < il; i += 3 ) {
+
+			var x = array[ i ];
+			var y = array[ i + 1 ];
+			var z = array[ 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.min.set( minX, minY, minZ );
+		this.max.set( maxX, maxY, maxZ );
+
+	},
+
 	setFromPoints: function ( points ) {
 
 		this.makeEmpty();