mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-29 12:17:14 -06:00
A merge found the contours of the faces it unites with one contour pass over the whole arrangement for each coverage among them, and the search for slivers next to them did the same for each neighboring coverage. Each in-place remnant of a merge is such a merge too, so a click on many overlapping shapes made one pass over the whole arrangement for each coverage, for the merged faces and again for each remnant. Both now use the batching that Divide's regions use: one pass for each batch of coverages whose faces share no vertex. The batching looks a face's coverage up by a hash of the inputs that cover it, computed as it walks them. The search for slivers looks up the merged faces' coverages the same way. Merging a frame no longer takes in an island of the same coverage in its hole: each face is its outer contour and the holes directly in it, as the regions are.