mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-10-24 09:46:59 -06:00
The planar map found each edge's source input by scanning every input segment, and the face around each hole or merge point by scanning every face, so it was quadratic in the segments; the Shape Builder therefore gave up past 4096 segments (traced or type outlines) and offered whole shapes. Index outline segments and faces by bounds on both axes (RectIndex), walk an edge's segments lazily when finding its leaving angle, and raise SHAPE_BUILDER_MAX_SEGMENTS to 65,536. Divide with open paths shares the cap; its cap test now follows the constant. Tests: a 20,000-segment blob cut by two lines, a 300-line hatch, the index against a brute-force scan, and the existing cap test at the new cap. Progress docs updated (G11, parity evidence, roadmap). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_014gCpjL3yUhaH3jRp7ksufh