Browse Source

slight speedup in Matrix4.rotationAngleAxisMatrix by cutting down object lookups and redundant multiplications

astrodud 14 years ago
parent
commit
151ff4394e
1 changed files with 11 additions and 10 deletions
  1. 11 10
      src/core/Matrix4.js

+ 11 - 10
src/core/Matrix4.js

@@ -373,16 +373,17 @@ THREE.Matrix4.rotationAxisAngleMatrix = function ( axis, angle ) {
 	c = Math.cos( angle ),
 	c = Math.cos( angle ),
 	s = Math.sin( angle ),
 	s = Math.sin( angle ),
 	t = 1 - c,
 	t = 1 - c,
-	x = axis.x, y = axis.y, z = axis.z;
-
-	rot.n11 = t * x * x + c;
-	rot.n12 = t * x * y - s * z;
-	rot.n13 = t * x * z + s * y;
-	rot.n21 = t * x * y + s * z;
-	rot.n22 = t * y * y + c;
-	rot.n23 = t * y * z - s * x;
-	rot.n31 = t * x * z - s * y;
-	rot.n32 = t * y * z + s * x;
+	x = axis.x, y = axis.y, z = axis.z,
+	tx = t * x, ty = t * y;
+
+	rot.n11 = tx * x + c;
+	rot.n12 = tx * y - s * z;
+	rot.n13 = tx * z + s * y;
+	rot.n21 = tx * y + s * z;
+	rot.n22 = ty * y + c;
+	rot.n23 = ty * z - s * x;
+	rot.n31 = tx * z - s * y;
+	rot.n32 = ty * z + s * x;
 	rot.n33 = t * z * z + c;
 	rot.n33 = t * z * z + c;
 
 
 	return rot;
 	return rot;