Hi Regina,

Am 24.03.2016 um 16:35 schrieb Regina Henschel:
Hi Armin,

I need an advice/opinion _where_ to hold the information:

Definitely in drawinglayer::attribute::LineAttribute, same place where basegfx::B2DLineJoin is held. A double, defaulted to 15.0 and read access will be fine. For setting it, add a 5th parameter to the constructor, defaulted to 15.0. The LineAttribute is a read-only, not later changeable class to keep things simple. It is better/safer to create another one when a value needs to be changed than starting to keep track of changes and add notification or other stuff.

HTH!

Regards,
Armin


I cannot calculate whether to exchange 'miter' with 'bevel' directly in svgreader, because there only properties for the whole path are handled, but such exchange only happens for a single line pair of the path. So I think, the exchange needs to be in createAreaGeometry part //check and create linejoin. Is that right?

createAreaGeometry gets all needed information already in distinct parameters. The division in single parameters is done inside PolygonStrokePrimitive2D::create2DDecomposition part // create fat line data. There I need access to 'miterlimit'. How should I hold this information? Should I extend LineAttribute, or somethink else?

Kind regards
Regina

Armin Le Grand schrieb:
Hi Regina,

AFAIK it is partially used, but not completely. I know of some cases in
renderers where today a fixed default of 15.0 is used. Various
GraphicSystems use various definitions for it, take care. It would be
necessary to define a definition for it for LO, import where available
and use where available. Some sub-systems can use it, e.g. Gdiplus or
cairo, export to SVG, but no tMetafile (at least not ours). There is
definitely no UI for it.

HTH!
Regards,
Armin

Am 24.03.2016 um 01:39 schrieb Regina Henschel:
Hi all,

the following is, what I have found so far, but it might have errors.
So please correct me.

If two lines build a corner, the corner-style can be None, Rounded,
Beveled or Mitered. That is the property "draw:stroke-linejoin" in ODF
and "stroke-linejoin" in SVG. But SVG has the additional property
"stroke-miterlimit". Using it, the author can determine how sharp the
corner can be before it is turned into kind Beveled. I see no such
property in ODF. LibreOffice turns automatically to kind Bevel using
the default value of svg:stroke-miterlimit.

The API has the struct "StrokeAttributes" in css::rendering. It has
the element "MiterLimit". I do not know any UI for it and don't know,
if and how it is usable at all. The service "LineProperties" in
css::drawing does not provide such property.

In OOXML it is the attribute "lim" in element a:miter (20.1.8.43).


This svg-attribute is read on SVG import. And it could be evaluated by
the method basegfx::tools::createAreaGeometry(), if it got a value
into the already prepared parameter. But between these two ends there
is currently no way to transport the information. The line properties
Width, Color, LineCap and LineJoin are transported via class
"LineAttribute".

So my question is, how to transport the "Miterlimit"-information?
Add a member to class LineAttribute?
Add a member to PolygonStrokePrimitive2D and an additional new
parameter into the chain of calls and constructions?
Only fix svg-import or care for other things too? What would I have to
consider?

Kind regards
Regina




_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice


_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice

--
--
ALG (PGP Key: EE1C 4B3F E751 D8BC C485 DEC1 3C59 F953 D81C F4A2)

_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to