mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-09 01:28:22 +00:00
The overlap grouping swept left to right comparing each object's bounds with every box still open at its left edge, so many objects sharing a horizontal extent (stacked in a column) cost a comparison per pair before any of the flattener's geometry limits applied, and the grouping could not be cancelled. Open boxes are now kept in a tree by their tops that knows the lowest bottom below each branch, so each box meets only the open boxes it overlaps; an open box inside a later box of its group, ending no further right, is closed early. The grouping checks for cancellation as it goes. Groups are unchanged: a test compares them with every-pair grouping.