Closed dg0yt closed 9 years ago
dl3sdo posted on Sourceforge:
If the 'cutout' circle is drawn outside the area, consequently a filled circle is drawn instead.
Diff:
--- old
+++ new
@@ -1,3 +1,3 @@
-Applying the cutout tool works different than expected, see attached omap.
-If the cutout is not completely inside the area (left side), the result is an xor
-If the cutout is applied to overlapping areas (right side) is either fails completely or does an xor.
+Applying the cut-hole tool works different than expected, see attached omap.
+If the hole is not completely inside the area (left side), the result is an xor
+If the hole is applied to overlapping areas (right side) is either fails completely or does an xor.
Actually, this is the cut-hole tool.
At the moment, this tool simply adds another segment to an existing path This works like cut-hole for some cases, but in general the outcomes is defined by the fill rule Qt::OddEvenFill. See Qt::FillRule, QPainterPath details.
As an alternative (which might be what ordinary users expect) the tool could use the boolean difference (cf. Area-difference tool) to remove parts of the original object.
However, experimenting with the example map shows that the boolean tools (for the proposed alternative: area-difference tool; from the original report: cutout tool) suffer from insufficient integration between Mapper and the Clipper polygon library. Various boolean operations result in incorrect outcomes and issue this warning:
:::text
BooleanTool::rebuildSegment: end error too high in decreasing general case: [some number]
dl3sdo reported on Sourceforge [tickets:#322]:
Applying the cut-hole tool works different than expected, see attached omap. If the hole is not completely inside the area (left side), the result is an xor If the hole is applied to overlapping areas (right side) is either fails completely or does an xor.
Attachments (on Sourceforge):