fix(verify): resolve adjacent curves before any native query runs

A fillet whose circle is tangent inside the arc it continues, as a
keyhole's slot ends are, gives the supporting-circle query of the pair
no real root: the circles' distance is the radii's difference up to
rounding, so the intersection comes back NaN, and the unfiltered check
that runs before any adjacency handling refused the whole part as
"nonfinite program coordinates". On the production corpus 17 plates
failed this way. Adjacent curves are now resolved from their shared
vertex before the native query would run, so no query runs for them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
ajandClaude Fable 5.1 committed 2026-11-02 14:31:45 -05:00
1 parent 60d235c8ce
commit c122e64edd
3 files changed
+71 -44

No files matched your search

+3 -1
View File
@@ -71,7 +71,9 @@ end (within the check epsilon, 1e-8) are not put to the native intersection quer
all: it is ill-conditioned at such a joint (two circles meeting at a shallow angle, as a
fillet continuing into a larger arc, or a line meeting its fillet), and lands its root up
to 1e-5 off the vertex, which no joint tolerance can tell from a cut that touches beside
the joint. `PostVerificationGeometry.Curve.Contacts` reports the shared vertex itself and
the joint; a fillet whose circle is tangent inside the arc it continues, as a keyhole's slot
ends are, gives the supporting-circle query no real root at all, which read as nonfinite
coordinates and refused the whole part. `PostVerificationGeometry.Curve.Contacts` reports the shared vertex itself and
derives the pair's other intersection from it (two circles meet again at the vertex's mirror
image across the line through their centers; a line meets a circle again at the far end of
its chord), keeping it only when it lies on both finite spans. Every consumer of contacts