mirror of
https://github.com/bherbruck/solidcraft.git
synced 2026-11-05 11:35:55 +00:00
smlib: a draft on solidcore keeps the body's tags and face history
solidcore's local operation carries the B-rep's attributes since 1ee3a930c, which the pin 3569b5d73 holds, so history::tags_cross_a_draft runs again and matches the C++ draft. The draft's body is no longer marked untracked: Brep::made_core_draft goes and ops::draft answers with Brep::made_core, so a draft's history is read as every other solidcore operation's is. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MNXLXkZLQ6T7TSi4wswcmk
This commit is contained in:
@@ -612,7 +612,6 @@ mod history {
|
||||
/// A 5 degree draft of the front about the bottom plane: the front tilts, its neighbours'
|
||||
/// edges move with it.
|
||||
#[test]
|
||||
#[ignore = "solidcore's draft (its local operation) does not carry the body's attributes yet: every face comes out untagged"]
|
||||
fn tags_cross_a_draft() {
|
||||
let a = tagged_box();
|
||||
let front = [[10.0, 0.0, 5.0]];
|
||||
|
||||
@@ -264,12 +264,6 @@ impl Brep {
|
||||
Brep { untracked: Some("the history of a blend on solidcore (solidcore#1594)"), ..Brep::made_core(b) }
|
||||
}
|
||||
|
||||
/// A body a solidcore draft made: its local operation does not carry the body's attributes
|
||||
/// yet (every face comes out with none), so its history is not read.
|
||||
fn made_core_draft(b: core::Body) -> Brep {
|
||||
Brep { untracked: Some("the history of a draft on solidcore, whose local operation does not carry attributes yet"), ..Brep::made_core(b) }
|
||||
}
|
||||
|
||||
/// The C++ kernel's body: converted from solidcore's the first time it is asked for (and
|
||||
/// tagged as solidcore's is, for a [`Brep::tagged`] body).
|
||||
fn cpp(&self) -> Result<&ffi::Handle> {
|
||||
|
||||
@@ -396,7 +396,7 @@ impl Brep {
|
||||
return Err(Error::Argument);
|
||||
}
|
||||
if route::Op::Split.backend() == route::Backend::Solidcore {
|
||||
return core::offset::draft(self.core()?, faces, tolerance, neutral_origin, neutral_normal, pull, angle).map(Brep::made_core_draft);
|
||||
return core::offset::draft(self.core()?, faces, tolerance, neutral_origin, neutral_normal, pull, angle).map(Brep::made_core);
|
||||
}
|
||||
init()?;
|
||||
ffi::ops::draft(self.cpp()?, faces, tolerance, &neutral_origin, &neutral_normal, &pull, angle).map(Brep::made).map_err(pick_error)
|
||||
|
||||
Reference in New Issue
Block a user