Repository navigation
fix: prepare face geometry for shell ray queries (stacked on #613, merged with main) - #685
Merged
bherbruck merged 17 commits intoOct 24, 2026
Conversation
Bind shell ray solves to lazy UV trims and owning-face caches. Preserve the construction notification keys when translating pole-free spheres. Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
Count reachable B-rep lists and restore curve owners from the native face fixture. Let sweep coverage accept successful kernel calls. Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Use the live curve natural interval for duplicate comparisons while retaining the caller handles. Cover subdomains, distinct identities and missing geometry. Co-Authored-By: Codex <noreply@openai.com>
Expose an explicit pole-free sphere tolerance and use precise property integration for the unchanged analytic gate. Verify all seven complete examples, sphere scaling and translation, UV-edge agreement and tolerance validation. Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
Co-Authored-By: Codex <noreply@openai.com>
Use live topology reads and cache-first face classification while retaining exact evaluation geometry. Forward constructor identities into stitching region queries and compare primitive geometry, tolerances, trims and rays against SMLib. Co-Authored-By: Codex <noreply@openai.com>
Export regions in native owning-list order after ResetInfiniteRegion and bind lazy UV trim owners to the construction identities. The 90 spine-doubled fixtures, including both CI failures, compare exactly against C++; the shared p6 exporter stays unchanged. Co-Authored-By: Codex <noreply@openai.com>
Carries tangency-labs#613 onto main bcc2f80. Conflicts: - primitive/api_primitives.rs: keep main's comment on the torus point classification; with tangency-labs#613's prepared trim cache the partial torus now builds, so the test asserts a manifold solid instead of a deferral. - plan/units notes (api_primitives, primitive_creation_p1, query.brep, topology.brep_p10): keep main's CI status prefix and tangency-labs#613's update text. query/face/p2.rs merged cleanly: main's WithMadeTrimCurves and mutable face queries stay alongside tangency-labs#613's prepared-cache point classification. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tangency-labs#613's shell ray face preparation and tangency-labs#639's forwarded face hooks each leave these nine cases deferred; together the cases run and their region nesting differs from C++ (skin_concentric_loops, skin_primitive_annular, topology.brep_p6 make_face tangency-labs#89..95). Probes rule out tangency-labs#639's mutable face queries and tangency-labs#613's cache-first point classification as the cause on their own. List them as known mismatches with a findings entry. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ll ray face geometry branch Only conflict: plan/units/topology.brep_p10.toml notes; kept tangency-labs#679's UpdateVertexEdgeIntervals update and tangency-labs#613's update text. Code merged cleanly (topology/brep/p5.rs included). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
brett19
marked this pull request as ready for review
October 23, 2026 23:52
brett19
added a commit
to brett19/solidcore-fork
that referenced
this pull request
Oct 24, 2026
…#685 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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 PR carries henlamp's #613 ("fix: prepare face geometry for shell ray queries") onto current
mainso it can land while #613 conflicts withmain. All the credit goes to @henlamp for the fix. @erlis verified it with a full Linux sweep: 0 failures, and 366 deferred cases turned into passes.Contents: #613's commits unchanged, up to its head
c28753855, with the original authorship. On top of them are merges oforigin/main, and nothing else.Conflict resolutions (merge of main
bcc2f80be)crates/solidcore/src/primitive/api_primitives.rs(code, in a unit test):surface.trim_srf_cache. Combined with fix: prepare face geometry for shell ray queries #613's prepared trimmed-surface cache, the partial torus now builds completely, so the test now asserts that it is a manifold solid instead of expecting a deferral. Its difftest cases pass bit-identical against C++ (below).plan/units/{primitive.api_primitives,primitive.primitive_creation_p1,query.brep,topology.brep_p10}.toml(notes only): kept main's CI status prefix and fix: prepare face geometry for shell ray queries #613's appended update text. I added one line toprimitive.api_primitiveswith the merged counts.crates/solidcore/src/query/face/p2.rsmerged without conflicts. Main'sWithMadeTrimCurvespass-through and mutable face queries (classify_face_interval_mut,ClassGeometryMut, from wire: classification face queries through ClassGeometryMut (WithMadeTrimCurves pass-through) #639) sit alongside fix: prepare face geometry for shell ray queries #613's prepared&mut Breppath inpoint_classify(point_classify_live/point_classify_requestedand the fast path that checks the trimmed-surface cache first).Verification on the merge (
ae47be0e8)Local Linux runs:
cargo fmt --check,clippy --workspace --all-targets -D warnings,cargo test -p solidcore(2079 lib tests pass) and the wasm32 check all pass. The full--greensweep is left to CI.Before (main CI
e33985411) → after (this branch, local difftest):Needs review: 9 cases now run and disagree with C++ (listed as known mismatches)
The first CI run on the merge failed
primitive.primitive_creation_p2(1),sweep.api_surfaces(1) andtopology.brep_p6(7). Every one of these cases was deferred on both parents, so no case that previously passed now fails.WithMadeTrimCurvesmakes them run to completion. Bisected locally:b3f5aa691): the cases defer atSmEdge::GetCurve.73e557331): they fail.make_face.json#89..95cases (TestClosureSplitRegion) export fewer records in Rust.IntersectTSBound/ trimmed-cache-history gaps already recorded under wire: classification face queries through ClassGeometryMut (WithMadeTrimCurves pass-through) #639.crates/difftest/known_mismatches.toml, with aplan/findings.mdentry and notes in the three unit tomls. This needs a follow-up fix.known_mismatches.tomlentries.Locally after that commit:
If #613 is updated and merges first, this PR will be closed.
🤖 Generated with Claude Code