From: adam Date: Mon, 19 Apr 2004 20:48:03 +0000 (+0000) Subject: added Affine.premultiply() X-Git-Tag: 01-July-2005~134 X-Git-Url: http://git.megacz.com/?p=org.ibex.core.git;a=commitdiff_plain;h=c8598d51fe71ce77d466c02b6fa264617be9335b;ds=sidebyside added Affine.premultiply() darcs-hash:20040419204803-5007d-966c5f959384553bfa0f91d6a6589c641634b7a8.gz --- 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;