From b91c17d3b9888655f46d5d7dfc75d18e076e2347 Mon Sep 17 00:00:00 2001 From: Bruno Garcia Date: Tue, 4 Dec 2012 18:38:31 -0800 Subject: [PATCH] Take shortcuts in translate() and scale(). --- src/main/java/pythagoras/d/AffineTransform.java | 10 ++++++++-- src/main/java/pythagoras/f/AffineTransform.java | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/main/java/pythagoras/d/AffineTransform.java b/src/main/java/pythagoras/d/AffineTransform.java index 44bc879..fa2c0db 100644 --- a/src/main/java/pythagoras/d/AffineTransform.java +++ b/src/main/java/pythagoras/d/AffineTransform.java @@ -191,7 +191,11 @@ public class AffineTransform extends AbstractTransform @Override // from Transform public Transform scale (double scaleX, double scaleY) { - return Transforms.multiply(this, scaleX, 0, 0, scaleY, 0, 0, this); + m00 *= scaleX; + m01 *= scaleX; + m10 *= scaleY; + m11 *= scaleY; + return this; } @Override // from Transform @@ -212,7 +216,9 @@ public class AffineTransform extends AbstractTransform @Override // from Transform public Transform translate (double tx, double ty) { - return Transforms.multiply(this, 1, 0, 0, 1, tx, ty, this); + this.tx += m00*tx + m10*ty; + this.ty += m11*ty + m01*tx; + return this; } @Override // from Transform diff --git a/src/main/java/pythagoras/f/AffineTransform.java b/src/main/java/pythagoras/f/AffineTransform.java index c82193e..c470239 100644 --- a/src/main/java/pythagoras/f/AffineTransform.java +++ b/src/main/java/pythagoras/f/AffineTransform.java @@ -191,7 +191,11 @@ public class AffineTransform extends AbstractTransform @Override // from Transform public Transform scale (float scaleX, float scaleY) { - return Transforms.multiply(this, scaleX, 0, 0, scaleY, 0, 0, this); + m00 *= scaleX; + m01 *= scaleX; + m10 *= scaleY; + m11 *= scaleY; + return this; } @Override // from Transform @@ -212,7 +216,9 @@ public class AffineTransform extends AbstractTransform @Override // from Transform public Transform translate (float tx, float ty) { - return Transforms.multiply(this, 1, 0, 0, 1, tx, ty, this); + this.tx += m00*tx + m10*ty; + this.ty += m11*ty + m01*tx; + return this; } @Override // from Transform