Expand description
Splitting a solid by a plane, either hand-rolled or via a boolean provider.
§Why both exist
Decomposition needs one primitive: cut a solid with a plane and keep both
halves as closed solids. The hand-rolled clipper does this with no
dependencies, which matters because axiolid-decompose should be usable
without pulling in a boolean backend.
But deciding what to do with a face lying ON the cut plane is a global question about which side the material is on, and a boolean solver answers it properly. So a caller that already has one can pass it in.
§Why a contract and not a direct dependency
axiolid-decompose is an algorithms crate and boolmesh is a
providers crate; that dependency edge is forbidden and the
architecture gate enforces it. Both layers may depend on contracts,
so the provider arrives as a &dyn MeshBoolean and any implementation
works. The choice is per call, not per build.
Enums§
- Splitter
- How a solid gets cut in two.