Browse Source

Matrix4.makeShear - standard shear constructor with optional Autodesk Maya style construction.

Ben Houston 10 years ago
parent
commit
6c7a4898de
1 changed files with 29 additions and 0 deletions
  1. 29 0
      src/math/Matrix4.js

+ 29 - 0
src/math/Matrix4.js

@@ -146,6 +146,35 @@ THREE.Matrix4.prototype = {
 
 
 	}(),
 	}(),
 
 
+	makeShear: function ( vector3Shear, reverseStyle ) {
+
+		var xy = vector3Shear.x;
+    	var xz = vector3Shear.y;
+    	var yz = vector3Shear.z;
+
+		if ( reverseStyle ) {
+
+		  this.set(
+		    1,  0,  0,  0,
+		    xy, 1,  0,  0,
+		    xz, yz, 1,  0,
+		    0,   0,  0,  1
+		  );
+
+		} else {
+		  // Maya style
+		  this.set(
+		    1,  xy, xz, 0,
+		    0,  1,  yz, 0,
+		    0,  0,  1,  0,
+		    0,  0,  0,  1
+		  );
+		}
+
+	    return this;
+
+	},
+
 	makeRotationFromEuler: function ( euler ) {
 	makeRotationFromEuler: function ( euler ) {
 
 
 		if ( euler instanceof THREE.Euler === false ) {
 		if ( euler instanceof THREE.Euler === false ) {