summaryrefslogtreecommitdiff
path: root/basegfx
diff options
context:
space:
mode:
authorArmin Le Grand <Armin.Le.Grand@Sun.COM>2009-09-24 14:07:59 +0200
committerArmin Le Grand <Armin.Le.Grand@Sun.COM>2009-09-24 14:07:59 +0200
commit56fba7ddfd5f3527aacd92dfac254c3312cf5f14 (patch)
tree3c51c2ad5ec309fead4444aa3f27027ec2703d65 /basegfx
parent7857f07d09265f58b2c17c4f619f4aad81b1c43d (diff)
#i97509# optimized createRotateAroundPoint
Diffstat (limited to 'basegfx')
-rw-r--r--basegfx/source/matrix/b2dhommatrixtools.cxx15
1 files changed, 12 insertions, 3 deletions
diff --git a/basegfx/source/matrix/b2dhommatrixtools.cxx b/basegfx/source/matrix/b2dhommatrixtools.cxx
index c9c3180d3e4a..2c71193f6352 100644
--- a/basegfx/source/matrix/b2dhommatrixtools.cxx
+++ b/basegfx/source/matrix/b2dhommatrixtools.cxx
@@ -354,9 +354,18 @@ namespace basegfx
if(!fTools::equalZero(fRadiant))
{
- aRetval = createTranslateB2DHomMatrix(-fPointX, -fPointY);
- aRetval.rotate(fRadiant);
- aRetval.translate(fPointX, fPointY);
+ double fSin(0.0);
+ double fCos(1.0);
+
+ createSinCosOrthogonal(fSin, fCos, fRadiant);
+
+ aRetval.set3x2(
+ /* Row 0, Column 0 */ fCos,
+ /* Row 0, Column 1 */ -fSin,
+ /* Row 0, Column 2 */ (fPointX * (1.0 - fCos)) + (fSin * fPointY),
+ /* Row 1, Column 0 */ fSin,
+ /* Row 1, Column 1 */ fCos,
+ /* Row 1, Column 2 */ (fPointY * (1.0 - fCos)) - (fSin * fPointX));
}
return aRetval;