mirror of
https://github.com/storytold/cadcraft.git
synced 2026-11-12 00:45:16 -06:00
* Dynamic blocks: a point on a frame edge of any length is on it The frame edge test used Line::dist, which takes a segment shorter than EPS (1e-9) for its first point: a point halfway along a frame edge that short was neither on the edge nor, by the even-odd test, inside, so its line moved whole instead of stretching. The distance to an edge is now the exact one, clamped to the segment. Tests also cover two rules from #2627 that had none: a point on an edge's line but past its end is outside the frame, and a polyline tilted by only 5e-10 (about a unit off at an elevation of 2e9) keeps its stored vertex list. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Dynamic blocks: measure a frame edge's residual from its start segment_dist added the projection back to the edge's start before measuring, so near x = 36 the residual was rounded to that magnitude's spacing (7e-15). A point 1.4e-15 off an edge 5e-10 long, outside the frame, then came out 4e-20 away, within the edge's 5e-19 tolerance, and was taken as on it. The residual is now measured from the edge's start, where those digits are kept. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>