Hi David, Dr. David Alan Gilbert schrieb am 02.01.2021 um 04:35:
Hi, I'd appreciate some pointers on shape creation and in particular why ImpForceLineAngle exists.
ImpForceLineAngle() exists from the beginning. I see it already in OOo1.1.5. You will find it as ImpForceLineWink() in the history of svdopath.cxx.
[..]
a) What is ImpForceLineAngle for, why calculate an angle from the line you've just created? > b) Is that angle supposed to be applied to that line - or is it intended just for something else ?
The purpose is, that the user gets a simple way to have text along the line. Without this rotation, the text would always be horizontal, although the user creates a non horizontal line. I think, at some point between OOo2.4 and OOo3.2.1 this rotation was extended to polylines.
The member aGeo contains the transformation angles. When you apply this shear and rotation to the left/top corner of the logic rectangle (member maRect) you get the snap rectangle (member maSnapRect). These angles are part of the API. You need to know, that vertical flip introduces an additional 180° rotation.
Custom shapes are special in that they have properties mirror vertical and mirror horizontal in their enhanced geometry, that SdrObjCustomShape has the true rotation angle as member fObjectRotation, and that they allow text rotation independent from object rotation in their enhanced geometry.
Kind regards Regina _______________________________________________ LibreOffice mailing list LibreOffice@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice