Browse Source

Improve Matrix4 closure performance

Tristan VALCKE 8 years ago
parent
commit
bece17ccca
1 changed files with 7 additions and 23 deletions
  1. 7 23
      src/math/Matrix4.js

+ 7 - 23
src/math/Matrix4.js

@@ -119,12 +119,10 @@ Object.assign( Matrix4.prototype, {
 
 
 	extractRotation: function () {
 	extractRotation: function () {
 
 
-		var v1;
+		var v1 = new Vector3();
 
 
 		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,18 +315,12 @@ Object.assign( Matrix4.prototype, {
 
 
 	lookAt: function () {
 	lookAt: function () {
 
 
-		var x, y, z;
+		var x = new Vector3();
+		var y = new Vector3();
+		var z = new Vector3();
 
 
 		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 ).normalize();
 			z.subVectors( eye, target ).normalize();
@@ -450,12 +442,10 @@ Object.assign( Matrix4.prototype, {
 
 
 	applyToBufferAttribute: function () {
 	applyToBufferAttribute: function () {
 
 
-		var v1;
+		var v1 = new Vector3();
 
 
 		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 );
@@ -772,17 +762,11 @@ Object.assign( Matrix4.prototype, {
 
 
 	decompose: function () {
 	decompose: function () {
 
 
-		var vector, matrix;
+		var vector = new Vector3();
+		var matrix = new Matrix4();
 
 
 		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();