forked from 1b-agent/opencadstudio-upstream
chore: take the stack with its solid layer and ACIS bridge
The kernel gained a B-rep layer — topology, analytic surfaces, surface intersection, face splitting, point classification, booleans — and acadifc gained the bridge that lifts an ACIS document into it and lowers it back, provenance-driven so an untouched body saves byte for byte. The reachability test is a compile-time one on purpose. A dependency chain that stops resolving is caught where it breaks rather than the next time somebody reaches for the far end of it. Co-Authored-By: Claude Opus 5 <[email protected]>
This commit is contained in:
1 parent
2f60dd0f59
commit
1a37562a28
3 files changed
+35
-6
No files matched your search
@@ -710,6 +710,21 @@ mod tests {
|
||||
assert!(curve.is_closed());
|
||||
}
|
||||
|
||||
/// The whole stack resolves from here: OCS reaches the B-rep layer and
|
||||
/// the ACIS bridge through the same alias every other CAD type comes in
|
||||
/// by. A compile-time check, so a chain that stops resolving is caught
|
||||
/// where it happens rather than the next time somebody reaches for it.
|
||||
#[test]
|
||||
fn the_solid_layer_and_the_acis_bridge_are_reachable() {
|
||||
let solid = acadrust::kernel::brep::make::cuboid([0.0; 3], [1.0; 3])
|
||||
.expect("the kernel builds its own primitives");
|
||||
assert!(solid.validate().is_empty());
|
||||
assert_eq!(solid.euler_characteristic(), 2);
|
||||
let document = acadrust::entities::acis::types::SatDocument::new();
|
||||
let (bodies, loss) = acadrust::acis::lift(&document);
|
||||
assert!(bodies.is_empty() && loss.is_empty(), "an empty document lifts to nothing");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn entities_that_are_not_curves_say_so() {
|
||||
assert!(entity_curve(&EntityType::Point(Default::default())).is_none());
|
||||
|
||||
Reference in new issue
Block a user