Repository navigation
port: surface.trim_srf_cache - #1016
Merged
bherbruck merged 6 commits intoOct 25, 2026
Merged
Conversation
Co-Authored-By: OpenAI Codex <noreply@openai.com>
Retain polygon-edge endpoints, tolerance and original surface for child implantation. Preserve native parent lists and child ordering, including handle remapping. Add 130 differential cases and regression coverage for geometry updates. Co-Authored-By: OpenAI Codex <noreply@openai.com>
Co-Authored-By: OpenAI Codex <noreply@openai.com>
Co-Authored-By: OpenAI Codex <noreply@openai.com>
SmZoneTol3d accepts zero and normalizes negatives with fabs. Keep those inputs in native coverage and test rejection of nonfinite tolerances and invalid node indices. Co-Authored-By: OpenAI Codex <noreply@openai.com>
Co-Authored-By: OpenAI Codex <noreply@openai.com>
fdalmaso
marked this pull request as ready for review
October 25, 2026 21:58
bherbruck
approved these changes
Oct 25, 2026
bherbruck
left a comment
Collaborator
There was a problem hiding this comment.
Approved by the automated first-pass review: CI green, mergeable, no CI/build/dependency file changes, no red-flag patterns in added code (process/network/env/unsafe outside FFI/blobs/hidden unicode), 0 known-mismatch entries added. Logic is gated by CI and the difftest merge queue.
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.
When an edge-use implantation subdivided a boundary leaf containing polygon edges, Rust created the children and then returned
Unported(SmFace::GetSurface). This completes that branch ofSmTrimSrfCache::SubdivideNode: each polygon is reimplanted in child 1 and child 2 using its original surface, endpoints and tolerance.The parent polygon list stays intact, iteration starts at its head, and each child's prepend order matches C++. Mixed edge-use lists retain native behavior. The cache keeps an owned evaluation snapshot of each implanted polygon's original surface, alongside its endpoints and tolerance, and carries that data through
map_handles. Callers reimplant after editing an edge or its original surface, following the existing edge-use snapshot pattern.Coverage adds 128 separate fixed-seed cases and 4 fixtures: repeated U/V subdivision, crossing and degenerate segments, mixed lists, different original/cache surfaces, handle remapping, tolerance cutoffs, and native zero/negative tolerance construction. All 630 existing cases remain passing with their value coverage preserved. The reference is still upstream
c9c5979; no newer C++ version is required.Validation after merging main
53872b3d0:cargo fmt --all --checkandcargo clippy --workspace --all-targets -- -D warnings: pass.cargo clippy --profile difftest -p difftest --lib --features cpp -- -D warnings: pass.cargo test -p solidcore: 2,229 passed, 0 failed, 1 existing ignored test.cargo check -p solidcore --target wasm32-unknown-unknown: pass.cargo test --profile difftest -p solidcore-ffi --features cpp surface_trim_srf_cache: 5 passed, including truncation, bad node indices, nonfinite data and zero/negative tolerance validation.--green --jobs 4: 261 units, 251 pass, 10 partial, 0 failures. CI applies the exact-base artifact ratchet.No tolerance or absolute floor changed; no known mismatch or coverage waiver added. Reports remain untracked.