Repository navigation
fix: IsInnerShell and PointsInFace run on the caller's B-rep (region nesting) - #714
Merged
bherbruck merged 8 commits intoOct 24, 2026
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
IsInnerShell ran its rays and PointsInFace on a copy of the B-rep, and PointsInFace's UV-domain and curve classification on further copies, so the UV trim curves upstream's const face queries leave on the B-rep were dropped. Run them on the caller's B-rep and copy the classification snapshot's trims and tolerance growth back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…in its rays Running IsInnerShell in place fixes the brep_p6 geometry but turns 14 topology.topology_traverser passes into deferrals at the face-owned trimmed surface cache: the scratch copy used to drop surface owners. Record the blocker and the proposed follow-up. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…shell-trims # Conflicts: # crates/difftest/known_mismatches.toml
…cy-labs#697's kept trimmed caches Merged tangency-labs#697 (face surfaces keep their trimmed caches; IntersectTSBound's cached branch and its mark). The 7 brep_p6 region-nesting known mismatches now pass and are removed; the unit is green (595/595). The two skin annulus cases still differ (the cap comes out as two faces) and stay listed with a findings entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ner-shell-trims # Conflicts: # crates/difftest/known_mismatches.toml
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.
This continues #694, which was closed once #697 merged. #697 ported the face-bound trimmed surface cache, which removed #694's blocker: the 14
IsInnerShelldeferrals in topology.topology_traverser. What #694 still adds on top of main is below. The branch is the same one, merged with #697 and the latest main.Root cause (from #694)
topology_traverser::is_inner_shellran its rays andGetPointsInFaceon ab.clone()scratch copy, andpoints_in_faceranCalculateUVDomainFromUVTrimCurvesand its iso-lineCurveOnClassifyon further copies.constface queries leave the UV trim curves they create on the B-rep, so C++ exported stored trims that Rust lacked. For brep_p6two_disjoint_cubes, geom.len was cpp 1385 against rust 1232. 18 of 33 trims landed on copies, all of them fromis_inner_shell.Changes
IsInnerShell,GetPointsInFaceandShell::is_inner_shelltake&mut Brepand run on the caller's B-rep instead of a scratch copy.CurveOnClassifyCachesnapshot.Results (local, at a1207b9)
known_mismatches.tomlentries are removed:two_cubes_at_a_vertex,two_disjoint_cubes,cube_in_cube,cube_with_wire,cube_with_inner_wire,cube_with_inner_vertex,cube_with_outer_vertex.primitive_creation_p2/skin_concentric_loops(record[7] cpp 1, rust 2) andsweep.api_surfaces/skin_primitive_annular(faces[1] cpp 1, rust 2). Rust builds the annular cap as two faces instead of one face with a hole. Their entries stay, with an updated reason and a findings entry. The cause is not narrowed to a call yet.Local checks: clippy clean with the cpp feature, and 2085 lib tests pass. CI runs the full sweep.
🤖 Generated with Claude Code