Browse Source

added multiplyValue

ncannasse 11 years ago
parent
commit
6ee8069ece
1 changed files with 39 additions and 20 deletions
  1. 39 20
      h3d/Matrix.hx

+ 39 - 20
h3d/Matrix.hx

@@ -2,7 +2,7 @@ package h3d;
 import hxd.Math;
 import hxd.Math;
 
 
 class Matrix {
 class Matrix {
-	
+
 	static var tmp = new Matrix();
 	static var tmp = new Matrix();
 
 
 	public var _11 : Float;
 	public var _11 : Float;
@@ -104,7 +104,7 @@ class Matrix {
 		_34 = 0.;
 		_34 = 0.;
 		_41 = 0.; _42 = 0.; _43 = 0.; _44 = 1.;
 		_41 = 0.; _42 = 0.; _43 = 0.; _44 = 1.;
 	}
 	}
-	
+
 	public function initRotate( x : Float, y : Float, z : Float ) {
 	public function initRotate( x : Float, y : Float, z : Float ) {
 		var cx = Math.cos(x);
 		var cx = Math.cos(x);
 		var sx = Math.sin(x);
 		var sx = Math.sin(x);
@@ -131,7 +131,7 @@ class Matrix {
 		_43 = 0;
 		_43 = 0;
 		_44 = 1;
 		_44 = 1;
 	}
 	}
-	
+
 	public function translate( x = 0., y = 0., z = 0. ) {
 	public function translate( x = 0., y = 0., z = 0. ) {
 		_11 += x * _14;
 		_11 += x * _14;
 		_12 += y * _14;
 		_12 += y * _14;
@@ -146,7 +146,7 @@ class Matrix {
 		_42 += y * _44;
 		_42 += y * _44;
 		_43 += z * _44;
 		_43 += z * _44;
 	}
 	}
-	
+
 	public function scale( x = 1., y = 1., z = 1. ) {
 	public function scale( x = 1., y = 1., z = 1. ) {
 		_11 *= x;
 		_11 *= x;
 		_21 *= x;
 		_21 *= x;
@@ -167,13 +167,13 @@ class Matrix {
 		tmp.initRotate(x,y,z);
 		tmp.initRotate(x,y,z);
 		multiply(this, tmp);
 		multiply(this, tmp);
 	}
 	}
-	
+
 	public function rotateAxis( axis, angle ) {
 	public function rotateAxis( axis, angle ) {
 		var tmp = tmp;
 		var tmp = tmp;
 		tmp.initRotateAxis(axis, angle);
 		tmp.initRotateAxis(axis, angle);
 		multiply(this, tmp);
 		multiply(this, tmp);
 	}
 	}
-	
+
 	public inline function pos( ?v : Vector ) {
 	public inline function pos( ?v : Vector ) {
 		if( v == null )
 		if( v == null )
 			return new Vector( _41, _42 , _43 , _44 );
 			return new Vector( _41, _42 , _43 , _44 );
@@ -183,7 +183,7 @@ class Matrix {
 		v.w = _44;
 		v.w = _44;
 		return v;
 		return v;
 	}
 	}
-	
+
 	public function prependTranslate( x = 0., y = 0., z = 0. ) {
 	public function prependTranslate( x = 0., y = 0., z = 0. ) {
 		var vx = _11 * x + _21 * y + _31 * z + _41;
 		var vx = _11 * x + _21 * y + _31 * z + _41;
 		var vy = _12 * x + _22 * y + _32 * z + _42;
 		var vy = _12 * x + _22 * y + _32 * z + _42;
@@ -200,7 +200,7 @@ class Matrix {
 		tmp.initRotate(x,y,z);
 		tmp.initRotate(x,y,z);
 		multiply(tmp, this);
 		multiply(tmp, this);
 	}
 	}
-	
+
 	public function prependRotateAxis( axis, angle ) {
 	public function prependRotateAxis( axis, angle ) {
 		var tmp = tmp;
 		var tmp = tmp;
 		tmp.initRotateAxis(axis, angle);
 		tmp.initRotateAxis(axis, angle);
@@ -212,7 +212,7 @@ class Matrix {
 		tmp.initScale(sx,sy,sz);
 		tmp.initScale(sx,sy,sz);
 		multiply(tmp, this);
 		multiply(tmp, this);
 	}
 	}
-	
+
 	public function multiply3x4( a : Matrix, b : Matrix ) {
 	public function multiply3x4( a : Matrix, b : Matrix ) {
 		var m11 = a._11; var m12 = a._12; var m13 = a._13;
 		var m11 = a._11; var m12 = a._12; var m13 = a._13;
 		var m21 = a._21; var m22 = a._22; var m23 = a._23;
 		var m21 = a._21; var m22 = a._22; var m23 = a._23;
@@ -275,6 +275,25 @@ class Matrix {
 		_44 = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;
 		_44 = a41 * b14 + a42 * b24 + a43 * b34 + a44 * b44;
 	}
 	}
 
 
+	public function multiplyValue( v : Float ) {
+		_11 *= v;
+		_12 *= v;
+		_13 *= v;
+		_14 *= v;
+		_21 *= v;
+		_22 *= v;
+		_23 *= v;
+		_24 *= v;
+		_31 *= v;
+		_32 *= v;
+		_33 *= v;
+		_34 *= v;
+		_41 *= v;
+		_42 *= v;
+		_43 *= v;
+		_44 *= v;
+	}
+
 	public inline function invert() {
 	public inline function invert() {
 		inverse(this);
 		inverse(this);
 	}
 	}
@@ -312,7 +331,7 @@ class Matrix {
 		_31 *= invDet; _32 *= invDet; _33 *= invDet;
 		_31 *= invDet; _32 *= invDet; _33 *= invDet;
 		_41 *= invDet; _42 *= invDet; _43 *= invDet;
 		_41 *= invDet; _42 *= invDet; _43 *= invDet;
 	}
 	}
-	
+
 	public function inverse( m : Matrix ) {
 	public function inverse( m : Matrix ) {
 		var m11 = m._11; var m12 = m._12; var m13 = m._13; var m14 = m._14;
 		var m11 = m._11; var m12 = m._12; var m13 = m._13; var m14 = m._14;
 		var m21 = m._21; var m22 = m._22; var m23 = m._23; var m24 = m._24;
 		var m21 = m._21; var m22 = m._22; var m23 = m._23; var m24 = m._24;
@@ -386,18 +405,18 @@ class Matrix {
 		_31 = m._31; _32 = m._32; _33 = m._33; _34 = m._34;
 		_31 = m._31; _32 = m._32; _33 = m._33; _34 = m._34;
 		_41 = m._41; _42 = m._42; _43 = m._43; _44 = m._44;
 		_41 = m._41; _42 = m._42; _43 = m._43; _44 = m._44;
 	}
 	}
-	
+
 	public function load( a : Array<Float> ) {
 	public function load( a : Array<Float> ) {
 		_11 = a[0]; _12 = a[1]; _13 = a[2]; _14 = a[3];
 		_11 = a[0]; _12 = a[1]; _13 = a[2]; _14 = a[3];
 		_21 = a[4]; _22 = a[5]; _23 = a[6]; _24 = a[7];
 		_21 = a[4]; _22 = a[5]; _23 = a[6]; _24 = a[7];
 		_31 = a[8]; _32 = a[9]; _33 = a[10]; _34 = a[11];
 		_31 = a[8]; _32 = a[9]; _33 = a[10]; _34 = a[11];
 		_41 = a[12]; _42 = a[13]; _43 = a[14]; _44 = a[15];
 		_41 = a[12]; _42 = a[13]; _43 = a[14]; _44 = a[15];
 	}
 	}
-	
+
 	public function getFloats() {
 	public function getFloats() {
 		return [_11, _12, _13, _14, _21, _22, _23, _24, _31, _32, _33, _34, _41, _42, _43, _44];
 		return [_11, _12, _13, _14, _21, _22, _23, _24, _31, _32, _33, _34, _41, _42, _43, _44];
 	}
 	}
-	
+
 	public function toString() {
 	public function toString() {
 		return "MAT=[\n" +
 		return "MAT=[\n" +
 			"  [ " + Math.fmt(_11) + ", " + Math.fmt(_12) + ", " + Math.fmt(_13) + ", " + Math.fmt(_14) + " ]\n" +
 			"  [ " + Math.fmt(_11) + ", " + Math.fmt(_12) + ", " + Math.fmt(_13) + ", " + Math.fmt(_14) + " ]\n" +
@@ -406,13 +425,13 @@ class Matrix {
 			"  [ " + Math.fmt(_41) + ", " + Math.fmt(_42) + ", " + Math.fmt(_43) + ", " + Math.fmt(_44) + " ]\n" +
 			"  [ " + Math.fmt(_41) + ", " + Math.fmt(_42) + ", " + Math.fmt(_43) + ", " + Math.fmt(_44) + " ]\n" +
 		"]";
 		"]";
 	}
 	}
-	
+
 	// ---- COLOR MATRIX FUNCTIONS -------
 	// ---- COLOR MATRIX FUNCTIONS -------
 
 
 	static inline var lumR = 0.212671;
 	static inline var lumR = 0.212671;
 	static inline var lumG = 0.71516;
 	static inline var lumG = 0.71516;
 	static inline var lumB = 0.072169;
 	static inline var lumB = 0.072169;
-	
+
 	public function colorHue( hue : Float ) {
 	public function colorHue( hue : Float ) {
 		if( hue == 0. )
 		if( hue == 0. )
 			return;
 			return;
@@ -433,7 +452,7 @@ class Matrix {
 		tmp._43 = 0;
 		tmp._43 = 0;
 		multiply3x4(this, tmp);
 		multiply3x4(this, tmp);
 	}
 	}
-	
+
 	public function colorSaturation( sat : Float ) {
 	public function colorSaturation( sat : Float ) {
 		var is = 1 - sat;
 		var is = 1 - sat;
 		var r = is * lumR;
 		var r = is * lumR;
@@ -453,7 +472,7 @@ class Matrix {
 		tmp._43 = 0;
 		tmp._43 = 0;
 		multiply3x4(this, tmp);
 		multiply3x4(this, tmp);
 	}
 	}
-	
+
 	public function colorContrast( contrast : Float ) {
 	public function colorContrast( contrast : Float ) {
 		var v = contrast + 1;
 		var v = contrast + 1;
 		tmp._11 = v;
 		tmp._11 = v;
@@ -476,9 +495,9 @@ class Matrix {
 		_42 += brightness;
 		_42 += brightness;
 		_43 += brightness;
 		_43 += brightness;
 	}
 	}
-	
+
 	// STATICS
 	// STATICS
-	
+
 	public static function I() {
 	public static function I() {
 		var m = new Matrix();
 		var m = new Matrix();
 		m.identity();
 		m.identity();
@@ -490,7 +509,7 @@ class Matrix {
 		m.load(a);
 		m.load(a);
 		return m;
 		return m;
 	}
 	}
-	
+
 	public static function T( x = 0., y = 0., z = 0. ) {
 	public static function T( x = 0., y = 0., z = 0. ) {
 		var m = new Matrix();
 		var m = new Matrix();
 		m.initTranslate(x, y, z);
 		m.initTranslate(x, y, z);