<div dir="ltr">I suspect there is code in Cairo that assumes zero-width strokes are invisible, so it may be difficult to fix it for only this device.<div><br></div><div>The main reason for using zero rather than any other number is that it survives scaling, which is pretty important for a magic value.</div><div></div></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Oct 18, 2018 at 11:12 AM Rick Yorgason <<a href="mailto:rick@firefang.com">rick@firefang.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div>Including zero-width strokes makes sense to me. After all, true hairlines are supposed to act as though they're zero-width.<br><br>The reason I implemented it this way it's because I was worried about two use cases:<br><br>1) Some applications might rely on zero-width lines being invisible. (Imagine an artist who selects all the lines he wants to hide and changes their line width to zero.)<br><br>2) Maybe some CNC machines rely on zero-width lines? PS_COSMETIC lines are always 1 unit wide, so there would be no way to send zero-width lines to the printer any more. This seems unlikely to be a problem, but it's possible.<br><br>(1) can be fixed by the calling application, and (2) isn't likely a real problem, and if we include zero-width strokes it would make it easier for developers to make true zero-width hairlines (since they don't need to know the target device's minimum unit size), so I'm down for it.<br><br>-Rick-<br><br><div class="gmail_quote">On October 18, 2018 9:10:07 AM PDT, Carl Worth <<a href="mailto:cworth@cworth.org" target="_blank">cworth@cworth.org</a>> wrote:<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<pre class="m_3658271408548538196k9mail">On Wed, Oct 17 2018, Rick Yorgason wrote:<br><blockquote class="gmail_quote" style="margin:0pt 0pt 1ex 0.8ex;border-left:1px solid #729fcf;padding-left:1ex">With this patch, I can use Inkscape to set my stroke width to 0.001" and <br>it will cut through the material as expected.<br></blockquote><br>If we're going to have a magic value here, I think I'd be much happier<br>to have 0 be the magic value.<br><br>(I know that your code isn't actually making 0.001" be magic, but a<br>whole range of values. I think I would really prefer to have that range<br>include rather then exclude 0.0.)<br><br>Does anyone see any reason why a stroke width of 0 shouldn't be treated<br>this way?<br><br>I think that would make a much better way to be able to document<br>this. ("Use a value of 0 to get a PS_COSMETIC pen which is useful when<br>targeting devices such as laser cutters".)<br><br>And speaking of documentation, it seems this patch should also be<br>touching up the documentation, such as in cairo_set_line_width?<br><br>I know the code is specific to the Windows backend, but I think it's<br>reasonable to put a backend-specific note into the general documentation<br>in a case like this.<br><br>-Carl<br></pre></blockquote></div><br>-- <br>Sent from my Android device with K-9 Mail. Please excuse my brevity.</div>-- <br>
cairo mailing list<br>
<a href="mailto:cairo@cairographics.org" target="_blank">cairo@cairographics.org</a><br>
<a href="https://lists.cairographics.org/mailman/listinfo/cairo" rel="noreferrer" target="_blank">https://lists.cairographics.org/mailman/listinfo/cairo</a></blockquote></div>