X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=blobdiff_plain;f=src%2Forg%2Fibex%2Fgraphics%2FAffine.java;h=1b47071259d934414d301b914a0b5fe4ef97e1b1;hp=31e2e2b25dada1a0ccb1d20537251292b10b617f;hb=c8598d51fe71ce77d466c02b6fa264617be9335b;hpb=8e190fb0ff508ccf4962bbfbf8295a431805c12b diff --git a/src/org/ibex/graphics/Affine.java b/src/org/ibex/graphics/Affine.java index 31e2e2b..1b47071 100644 --- a/src/org/ibex/graphics/Affine.java +++ b/src/org/ibex/graphics/Affine.java @@ -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;