AffineTransform getTransform() { const float hw = 0.5f * getWidth(); const float hh = 0.5f * getHeight(); AffineTransform t; if (controls.animateRotation.getToggleState()) t = t.rotated (rotation.getValue() * float_Pi * 2.0f); if (controls.animateSize.getToggleState()) t = t.scaled (0.3f + size.getValue() * 2.0f); if (controls.animatePosition.getToggleState()) t = t.translated (hw + hw * (offsetX.getValue() - 0.5f), hh + hh * (offsetY.getValue() - 0.5f)); else t = t.translated (hw, hh); if (controls.animateShear.getToggleState()) t = t.sheared (shear.getValue() * 2.0f - 1.0f, 0.0f); return t; }