Skip to content

fix: sweep store records face tolerances on the surfaces it owns - #712

Merged
bherbruck merged 1 commit into
tangency-labs:mainfrom
erlis:fix/store-face-tolerance
Oct 24, 2026
Merged

bherbruck merged 1 commit into
tangency-labs:mainfrom
erlis:fix/store-face-tolerance

Conversation

@erlis

@erlis erlis commented Oct 24, 2026

Copy link
Copy Markdown
Contributor

Split out of #681, where it was found (agreed with @brett19 there).

What. SweepStore::insert_body owns each face surface under the store's identities but did not record the face's tolerance on the surface, as every other place that gives a face its surface does (Brep::sync_face_surface_tolerance). It now calls it for each face whose surface it owns.

Why. A query on a store B-rep that reaches a face through its surface (upstream SmSurface::GetFace()->GetTolerance()) found no tolerance there and stopped at the unported SmFace::GetTolerance (topology.face_p2). On main this is masked wherever a query works on an owner-less copy of the B-rep; #681's owner-keeping copies exposed it (sweep::topology_sweep::store::tests::axis_classification_reaches_the_native_face_boundary).

Test. sweep::topology_sweep::store::tests::inserted_breps_record_face_tolerances_on_their_surfaces: a face with a plane and tolerance 2.5e-4 inserted into a store; its surface must report the face's zone tolerance. On main it fails with Unported SmFace::GetTolerance.

Checks (VM, base 9013227): fmt; clippy with and without difftest/cpp; cargo test -p solidcore; wasm; cargo test -p difftest --features cpp; full difftest sweep vs the base: no case changes (206 PASS / 54 PARTIAL units on both sides, 0 failed).

🤖 Generated with Claude Code

SweepStore::insert_body owns each face surface under the store's
identities but did not record the face's tolerance on it, as every other
place that gives a face its surface does (Brep::sync_face_surface_tolerance).
A query on the store's B-rep that reaches a face through its surface
(SmSurface::GetFace()->GetTolerance) then stopped at the unported
SmFace::GetTolerance (topology.face_p2).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@erlis
erlis marked this pull request as ready for review October 24, 2026 03:28
@bherbruck
bherbruck added this pull request to the merge queue Oct 24, 2026
Merged via the queue into tangency-labs:main with commit 0cdc106 Oct 24, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants