Implementing SVG attribute "stroke-miterlimit" ( tdf#48066)
Regina Henschel
rb.henschel at t-online.de
Thu Mar 24 00:39:23 UTC 2016
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
More information about the LibreOffice
mailing list