Module split

Source
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.