Repository navigation
Restore CAD-tolerance SSX and repair branch tracing - #48
Merged
Merged
Conversation
sth-v
marked this pull request as ready for review
September 23, 2026 03:43
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Restore CAD-tolerance Bézier/NURBS intersections, including tangent points, overlap geometry, and the full curves in the five real case16 examples. The repair removes the exact SSX ownership machinery and public unresolved_regions, preserves paired surface parameters, and retains the caller's modeling tolerance.
A post-tracing filter was deleting valid branches by treating interpolated parameter correspondence as world-space chord error. Removing it restores case16 and independent nonlinear-chart examples. Other fixes cover collapsed isolines, boundary contacts, planar overlap clipping, and continuation across subdivision faces. Parent-patch cut queries and a bounded per-search CCX polish cache reduce repeated work.
A separate tangency exit discarded a whole cell after finding one tangent curve, losing disjoint regular loops. The repair keeps searching the remainder and reuses existing geometry only through paired-parameter and physical-distance checks. Independent one-loop and two-loop families cover surface reversal and parameter reversal. Complete convex planar overlap regions are assembled before the general tangency search; work/output limits preserve already recovered rim curves without dangling region references.
Tests were audited against the CAD contract. Excessive public output precision and mandatory historical failure statuses were replaced with physical geometry checks. The original lost-tangent/overlap cases remain, along with coverage, winding, paired-source, and work-limit checks. Forty files for withdrawn internal exact SSX mechanisms were retired; none existed at the working baseline.
Validation:
-m "not slow"selection (one existing slow Boolean test excluded). Import health and layering pass.Details: repair report and test-contract audit.