diff options
author | Armin Le Grand <Armin.Le.Grand@Sun.COM> | 2009-09-24 14:07:59 +0200 |
---|---|---|
committer | Armin Le Grand <Armin.Le.Grand@Sun.COM> | 2009-09-24 14:07:59 +0200 |
commit | 56fba7ddfd5f3527aacd92dfac254c3312cf5f14 (patch) | |
tree | 3c51c2ad5ec309fead4444aa3f27027ec2703d65 /basegfx | |
parent | 7857f07d09265f58b2c17c4f619f4aad81b1c43d (diff) |
#i97509# optimized createRotateAroundPoint
Diffstat (limited to 'basegfx')
-rw-r--r-- | basegfx/source/matrix/b2dhommatrixtools.cxx | 15 |
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; |