From 7ca448a91ea2c42402b9ccfd607e46d7e3df3ea0 Mon Sep 17 00:00:00 2001 From: Dave Hoover Date: Fri, 1 Jun 2007 18:08:34 +0000 Subject: [PATCH] Let us optionally not auto-reposition TransformedMirages; it was being smart for things like scales and rotates so 0,0 still meant the same place, but that meant I couldn't just reposition something, since it would promptly undo the transform I passed in. git-svn-id: svn+ssh://src.earth.threerings.net/nenya/trunk@256 ed5b42cb-e716-0410-a449-f6a68f950b19 --- .../media/image/TransformedMirage.java | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/java/com/threerings/media/image/TransformedMirage.java b/src/java/com/threerings/media/image/TransformedMirage.java index 4fa0bb8f..0ac63019 100644 --- a/src/java/com/threerings/media/image/TransformedMirage.java +++ b/src/java/com/threerings/media/image/TransformedMirage.java @@ -38,17 +38,28 @@ public class TransformedMirage implements Mirage { /** - * Constructor. + * Constructor for backwards compatability that automatically repositions the + * transformed mirage so its new upper-left corner is still at the origin. */ public TransformedMirage (Mirage base, AffineTransform transform) + { + this(base, transform, true); + } + + /** + * Constructor. + */ + public TransformedMirage (Mirage base, AffineTransform transform, boolean reposition) { _base = base; // clone the transform so that it doesn't get changed on us. _transform = (AffineTransform) transform.clone(); computeTransformedBounds(); - _transform.preConcatenate( - AffineTransform.getTranslateInstance(-_bounds.x, -_bounds.y)); + if (reposition) { + _transform.preConcatenate( + AffineTransform.getTranslateInstance(-_bounds.x, -_bounds.y)); + } } // documentation inherited from interface Mirage