Units / boolean
boolean.api_brep partial
- Layer
- 58
- Upstream lines
- 410
- Functions
- 12
- Rust module
boolean::api_brep
Source: crates/solidcore/src/boolean/api_brep.rs
Upstream: source/SM_API/src/SmApiBrep.cpp
Notes
partial (PR #81): difftest cases=284 passed=142 deferred=142 (blocked_by boolean.merge_p2(81): SmMerge::SmMerge for SmApiBoolean/Union/Difference/Intersection/Merge/WithOptions; boolean.merge_p3(61): SmMerge::merge_breps / BooleanLists / BooleanTrees); compared: SmApiValidateBooleanOperands (EXTRACT_SEPARATE), SmApiMergeBreps list/operation validation incl. non-consumption; NULL/aliased operands are unrepresentable with owned Breps; C++ shim runs real box/sphere booleans for the deferred cases (record = status, faces/edges/vertices/regions/manifold) so they compare once merge lands; Rust operands are empty Breps until primitive.api_primitives (SmApiCreateBox/Sphere) is ported; 12 fns; largest: SmApiMergeBreps, SmApiBoolean, SmApiBooleanDifference, SmApiBooleanIntersection; entry points: SmApiBoolean, SmApiBooleanDifference, SmApiBooleanIntersection, SmApiBooleanLists, SmApiBooleanMerge, SmApiBooleanTrees, SmApiBooleanUnion, SmApiBooleanWithOptions, SmApiMergeBreps; 13 upstream test entry points reach this unit
Difftest
- Cases
- 284
- Passed
- 142
- Deferred
- 142
- Failed
- 0
- Both errored
- 0
- Max rel. error
- 0.0
- Tolerance
- 1e-09 rel.
- Seeds
- 16
Blocked by
| Unported unit | Deferred cases |
|---|---|
boolean.merge_p2 todo | 81 |
boolean.merge_p3 todo | 61 |
Report JSON (per-case results)
Dependencies
Depends on: boolean.merge_p3 todo
Soft dependencies: boolean.merge_p1 partial boolean.merge_p2 todo boolean.merge_p4 todo geom.context green topology.brep_p2 claimed
Dependents: audit.recursion todo
Soft dependents: none
Upstream functions
| Upstream function | Defined at | Lines | Rust (from the file header) |
|---|---|---|---|
SmApiMergeBrepsInputsAreValid | SmApiBrep.cpp:127 | 20 | merge_breps_inputs_are_valid (private) |
SmApiMergeBrepsKernelOperation | SmApiBrep.cpp:152 | 24 | merge_breps_kernel_operation (private) |
SmApiValidateBooleanOperands | SmApiBrep.cpp:186 | 15 | validate_boolean_operands (private) |
SmApiBoolean | SmApiBrep.cpp:208 | 48 | [boolean], [BooleanOutcome] |
SmApiBooleanUnion | SmApiBrep.cpp:263 | 47 | [boolean_union] |
SmApiBooleanDifference | SmApiBrep.cpp:317 | 47 | [boolean_difference] |
SmApiBooleanIntersection | SmApiBrep.cpp:371 | 47 | [boolean_intersection] |
SmApiBooleanMerge | SmApiBrep.cpp:494 | 47 | [boolean_merge] |
SmApiMergeBreps | SmApiBrep.cpp:548 | 49 | [merge_breps] |
SmApiBooleanWithOptions | SmApiBrep.cpp:1913 | 36 | [boolean_with_options] |
SmApiBooleanLists | SmApiBrep.cpp:2007 | 19 | [boolean_lists], [BooleanListsResult] |
SmApiBooleanTrees | SmApiBrep.cpp:2032 | 11 | [boolean_trees] |
Module file-header table (13 rows)
| Rust | Upstream |
|---|---|
merge_breps_inputs_are_valid (private) | SmApiMergeBrepsInputsAreValid (static) |
merge_breps_kernel_operation (private) | SmApiMergeBrepsKernelOperation (static) |
validate_boolean_operands (private) | SmApiValidateBooleanOperands (static) |
merge_boolean (private) | the shared body of the two-B-rep entry points |
[boolean], [BooleanOutcome] | SmApiBoolean |
[boolean_union] | SmApiBooleanUnion |
[boolean_difference] | SmApiBooleanDifference |
[boolean_intersection] | SmApiBooleanIntersection |
[boolean_merge] | SmApiBooleanMerge |
[merge_breps] | SmApiMergeBreps |
[boolean_with_options] | SmApiBooleanWithOptions |
[boolean_lists], [BooleanListsResult] | SmApiBooleanLists |
[boolean_trees] | SmApiBooleanTrees |
Upstream tests reaching this unit
SM_API_test:TestSmMaterialCensus, SM_API_test:TestSmPiecewiseMerge, SM_API_test:TestSmBooleanLists, SM_API_test:TestApiMergeBrepsInvalidOperation, SM_API_test:TestMergeBrepsOperation, SM_API_test:TestSmMergeBreps