Yes, I'm still sure this is correct, but only for the even-odd wind rule. In that case, every edge is contributing (= associated with an output polygon). Subsequently, there are only two possible constellations for intersecting edges (see attachments). Both are handled by pushing the intersection point to both outputs. I am not familiar with the definition of "Murta bundles", but I guess the term refers to coincident edges that are "bundled together" (?) ... This approach is not necessary for Vatti's...
Yes, I'm still sure this is correct, but only for the even-odd wind rule. In that case, every edge is contributing (= associated with an output polygon). Subsequently, there are only two possible constellations for intersecting edges (see attachments). Both are handled by pushing the intersection point to both outputs. I am not familiar with the definition of "Murta bundles", but I guess the term refers to coincident edges that are "bundled together" (?) ... This approach is not necessary for Vatti's...
You're welcome :) Yes, terminating at an arbitrary scanline should work if you artificially close the open outputs there (even with different fill rules), but starting in the middle is a problem.
Okay, in that case, you can successively set your previous result (initially, an empty polygon) as subject, your new contour as clip (or vice versa) and execute a union operation with the EvenOdd rule for the new contour. You will need one complete iteration over all scanbeams (i.e. one run of Vatti's algorithm) per contour you add. In the general case, it won't become computationally "cheaper" than that . I think we already discussed the topic of "partial" invocations of the algorithm (i.e. starting...
Sorry, I don't understand what you are trying to achieve. Let's consider an example. I randomly generated some rings and filled them via the EvenOdd rule (see below). What do you expect the union to look like?
Well, if your rings / contours are randomly generated, which rule do you apply to decide which parts are inside / outside? The EvenOdd rule? In that case, I don't understand how you want to union them.
Given that all your rings are wound in the same direction (e.g. outer rings anti-clockwise and holes clockwise), you could perform a union operation with your rings as subject polygon, an empty clip polygon, and a fill rule of NonZero.
Given that all your rings are wound in the same direction (e.g. outer rings anti-clockwise and holes clockwise), you could perform a union operation with your rings as subject polygon, an empty clip polygon, and a fill rule of NonZero or Positive / Negative.