diff --git a/Cargo.lock b/Cargo.lock index 2927210c5b..e8026b43e3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4054,7 +4054,7 @@ dependencies = [ [[package]] name = "solidcore" version = "1.0.1" -source = "git+https://github.com/tangency-labs/solidcore?rev=de85a3e006924bda0d83d6b1cae19ec30e0b3c6b#de85a3e006924bda0d83d6b1cae19ec30e0b3c6b" +source = "git+https://github.com/tangency-labs/solidcore?rev=c931c96411015f97f93ad392db1d99faa8b9cdca#c931c96411015f97f93ad392db1d99faa8b9cdca" dependencies = [ "thiserror 2.0.21", ] diff --git a/Cargo.toml b/Cargo.toml index 425c5406bf..5f38efcbf3 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,7 +35,7 @@ solidcraft-3dx-client = { path = "crates/threedx-client" } # they reach parity (crates/smlib/src/route.rs). Pinned; move the rev on its own commit. For a # local checkout, add `[patch."https://github.com/tangency-labs/solidcore"] solidcore = { path = # "../solidcore/crates/solidcore" }` to a `.cargo/config.toml` outside the repository. -solidcore = { git = "https://github.com/tangency-labs/solidcore", rev = "de85a3e006924bda0d83d6b1cae19ec30e0b3c6b" } +solidcore = { git = "https://github.com/tangency-labs/solidcore", rev = "c931c96411015f97f93ad392db1d99faa8b9cdca" } # foundation thiserror = "2" diff --git a/crates/smlib/src/core/split.rs b/crates/smlib/src/core/split.rs index 738a71cf09..f39044404d 100644 --- a/crates/smlib/src/core/split.rs +++ b/crates/smlib/src/core/split.rs @@ -499,7 +499,9 @@ pub(crate) fn split_body_by_sheet(body: &Body, sheet: &Body, face: usize) -> Res brep_copy(k, &g)? }; let Some(&f) = brep_p1::faces(©, None)?.get(face) else { return Ok(Err(Error::Argument)) }; - let turned = orient_sheet_surfaces(k, &mut copy, Some(f), !flip); + // The UV swaps notify as SMLib's objects do: through the kernel's callbacks, with + // the sheet's own attributes, so its faces' tags see each swap. + let turned = with_kernel_callbacks(k, &mut copy, |k, b, env| orient_sheet_surfaces(k, b, Some(f), !flip, env)); copy.refresh_cached_topology(); Ok(match turned { Ok(()) => Ok(copy),