You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by al...@apache.org on 2012/09/27 14:00:53 UTC

svn commit: r1390958 - /incubator/ooo/trunk/main/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx

Author: alg
Date: Thu Sep 27 12:00:53 2012
New Revision: 1390958

URL: http://svn.apache.org/viewvc?rev=1390958&view=rev
Log:
#119863# Corrected rotation center for animations

Modified:
    incubator/ooo/trunk/main/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx

Modified: incubator/ooo/trunk/main/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx?rev=1390958&r1=1390957&r2=1390958&view=diff
==============================================================================
--- incubator/ooo/trunk/main/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx (original)
+++ incubator/ooo/trunk/main/svx/source/sdr/contact/viewcontactofsdrobjcustomshape.cxx Thu Sep 27 12:00:53 2012
@@ -218,15 +218,27 @@ namespace sdr
 				xRetval = drawinglayer::primitive2d::Primitive2DSequence(&xReference, 1);
 			}
 
-			// always append an invisible outline for the cases where no visible content exists
-			const Rectangle aObjectBound(GetCustomShapeObj().GetGeoRect());
-            const basegfx::B2DRange aObjectRange(
-				aObjectBound.Left(), aObjectBound.Top(), 
-				aObjectBound.Right(), aObjectBound.Bottom());
+			// #119863# always append an invisible outline for the cases where no visible content exists
+            if(true)
+            {
+			    const Rectangle aObjectBound(GetCustomShapeObj().GetGeoRect());
+                const basegfx::B2DRange aObjectRange(
+				    aObjectBound.Left(), aObjectBound.Top(), 
+				    aObjectBound.Right(), aObjectBound.Bottom());
 
-			drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(xRetval, 
-				drawinglayer::primitive2d::createHiddenGeometryPrimitives2D(
-					false, aObjectRange));
+				// create object matrix
+				const GeoStat& rGeoStat(GetCustomShapeObj().GetGeoStat());
+				const double fShearX(rGeoStat.nShearWink ? tan((36000 - rGeoStat.nShearWink) * F_PI18000) : 0.0);
+				const double fRotate(rGeoStat.nDrehWink ? (36000 - rGeoStat.nDrehWink) * F_PI18000 : 0.0);
+				const basegfx::B2DHomMatrix aObjectMatrix(basegfx::tools::createScaleShearXRotateTranslateB2DHomMatrix(
+					aObjectRange.getWidth(), aObjectRange.getHeight(), fShearX, fRotate,
+					aObjectRange.getMinX(), aObjectRange.getMinY()));
+
+                drawinglayer::primitive2d::appendPrimitive2DReferenceToPrimitive2DSequence(xRetval, 
+				    drawinglayer::primitive2d::createHiddenGeometryPrimitives2D(
+					    false, 
+                        aObjectMatrix));
+            }
 
 			return xRetval;
 		}