added Affine.premultiply()
[org.ibex.core.git] / src / org / ibex / graphics / Affine.java
index 31e2e2b..1b47071 100644 (file)
@@ -48,6 +48,18 @@ public final class Affine {
         return this;
     }
 
+    /** this = a * this */
+    public Affine premultiply(Affine A) {
+        float _a = A.a * this.a + A.b * this.c;
+        float _b = A.a * this.b + A.b * this.d;
+        float _c = A.c * this.a + A.d * this.c;
+        float _d = A.c * this.b + A.d * this.d;
+        float _e = A.e * this.a + A.f * this.c + this.e;
+        float _f = A.e * this.b + A.f * this.d + this.f;
+        a = _a; b = _b; c = _c; d = _d; e = _e; f = _f;
+        return this;
+    }
+
     public void invert() {
         float det = 1 / (a * d - b * c);
         float _a = d * det;