Browse Source

Revert "Improve Matrix4 closure performance"

This reverts commit bece17cccaf55fd8f727bef023036fb74292132f.
Joe Fox 8 years ago
parent
commit
c63b024fd8
1 changed files with 23 additions and 7 deletions
  1. 23 7
      src/math/Matrix4.js

+ 23 - 7
src/math/Matrix4.js

@@ -121,10 +121,12 @@ Object.assign( Matrix4.prototype, {
 
 
 	extractRotation: function () {
 	extractRotation: function () {
 
 
-		var v1 = new Vector3();
+		var v1;
 
 
 		return function extractRotation( m ) {
 		return function extractRotation( m ) {
 
 
+			if ( v1 === undefined ) v1 = new Vector3();
+
 			var te = this.elements;
 			var te = this.elements;
 			var me = m.elements;
 			var me = m.elements;
 
 
@@ -317,12 +319,18 @@ Object.assign( Matrix4.prototype, {
 
 
 	lookAt: function () {
 	lookAt: function () {
 
 
-		var x = new Vector3();
-		var y = new Vector3();
-		var z = new Vector3();
+		var x, y, z;
 
 
 		return function lookAt( eye, target, up ) {
 		return function lookAt( eye, target, up ) {
 
 
+			if ( x === undefined ) {
+
+				x = new Vector3();
+				y = new Vector3();
+				z = new Vector3();
+
+			}
+
 			var te = this.elements;
 			var te = this.elements;
 
 
 			z.subVectors( eye, target );
 			z.subVectors( eye, target );
@@ -434,10 +442,12 @@ Object.assign( Matrix4.prototype, {
 
 
 	applyToBufferAttribute: function () {
 	applyToBufferAttribute: function () {
 
 
-		var v1 = new Vector3();
+		var v1;
 
 
 		return function applyToBufferAttribute( attribute ) {
 		return function applyToBufferAttribute( attribute ) {
 
 
+			if ( v1 === undefined ) v1 = new Vector3();
+
 			for ( var i = 0, l = attribute.count; i < l; i ++ ) {
 			for ( var i = 0, l = attribute.count; i < l; i ++ ) {
 
 
 				v1.x = attribute.getX( i );
 				v1.x = attribute.getX( i );
@@ -754,11 +764,17 @@ Object.assign( Matrix4.prototype, {
 
 
 	decompose: function () {
 	decompose: function () {
 
 
-		var vector = new Vector3();
-		var matrix = new Matrix4();
+		var vector, matrix;
 
 
 		return function decompose( position, quaternion, scale ) {
 		return function decompose( position, quaternion, scale ) {
 
 
+			if ( vector === undefined ) {
+
+				vector = new Vector3();
+				matrix = new Matrix4();
+
+			}
+
 			var te = this.elements;
 			var te = this.elements;
 
 
 			var sx = vector.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();
 			var sx = vector.set( te[ 0 ], te[ 1 ], te[ 2 ] ).length();