solidcore

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 unitDeferred cases
boolean.merge_p2 todo81
boolean.merge_p3 todo61

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 functionDefined atLinesRust (from the file header)
SmApiMergeBrepsInputsAreValidSmApiBrep.cpp:12720merge_breps_inputs_are_valid (private)
SmApiMergeBrepsKernelOperationSmApiBrep.cpp:15224merge_breps_kernel_operation (private)
SmApiValidateBooleanOperandsSmApiBrep.cpp:18615validate_boolean_operands (private)
SmApiBooleanSmApiBrep.cpp:20848[boolean], [BooleanOutcome]
SmApiBooleanUnionSmApiBrep.cpp:26347[boolean_union]
SmApiBooleanDifferenceSmApiBrep.cpp:31747[boolean_difference]
SmApiBooleanIntersectionSmApiBrep.cpp:37147[boolean_intersection]
SmApiBooleanMergeSmApiBrep.cpp:49447[boolean_merge]
SmApiMergeBrepsSmApiBrep.cpp:54849[merge_breps]
SmApiBooleanWithOptionsSmApiBrep.cpp:191336[boolean_with_options]
SmApiBooleanListsSmApiBrep.cpp:200719[boolean_lists], [BooleanListsResult]
SmApiBooleanTreesSmApiBrep.cpp:203211[boolean_trees]
Module file-header table (13 rows)
RustUpstream
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