Hi Regina,

> It works in principle,
What does that mean ?!?

A: An empty constructed basegfx::B2DHomMatrix is on identity (no-op), so it is 
ideal to test if it is used. Will even work when usages add-up to identity 
matrix whant means 'no change'. Yes, use isIdentity() please.

B: You might calculate it, but it is not really needed. Since we rotate arouhd 
center (only) it is sufficient to extract rotation and set it - we know it's 
around center. The rest of the shape (svg:x/y/width/height) is the unrotated 
shape, so this is sufficient. It can be calculated to make error-checks if 
wanted. It will have to be calculated when someone will use more of the 
transformation later (or we do)

C: Not sure whant you mean here. Correcting the position means it's 
'overdefined'. The (svg:x/y/width/height) and back-calculating from 
transformation with (-translate, rotate, translate) to rotate around center 
*should* always give the same center. If not, it is *not clear* which 
definition is the correct one. This is the reason the transformation should 
*not* contain positioning at all. The idea is: Apply (svg:x/y/width/height) 
first (pos and size), then apply transformation to it (rotate, shear, mirror 


-----Urspr√ľngliche Nachricht-----
Von: Regina Henschel [mailto:rb.hensc...@t-online.de] 
Gesendet: Friday, February 23, 2018 15:13
An: LO dev fdo <libreoffice@lists.freedesktop.org>
Cc: Armin Le Grand <armin.legr...@extern.cib.de>
Betreff: Consider translation of transformation matrix of image rotation

Hi Armin, hi all,

this is about https://bugs.documentfoundation.org/show_bug.cgi?id=115590
and my proposal https://gerrit.libreoffice.org/#/c/50176/

It works in principle, but I'm not sure about some details:

It has a construction
     basegfx::B2DHomMatrix aFullTransform;

     with later on
     if ( !aFullTransform.isIdentity() )

Should I use
     basegfx::B2DHomMatrix aFullTransform;
     bool bHasTransformation;

     if ( bHasTransformation )

It has
     if ( aTransformedCenterPosition != aCenterPosition ) Is this check useful, 
or should I calculate the correction always, although the result might be the 
original value?

Is this the correct place at all to correct the position?

Kind regards
LibreOffice mailing list

Reply via email to