pub fn symmetric_difference_via_composition<P>(
provider: &P,
subject: &TriMesh,
tool: &TriMesh,
options: &ExecutionOptions,
) -> Result<BooleanOutcome, GeomError>where
P: MeshBoolean + ?Sized,Expand description
Compose A △ B as (A ∪ B) \ (A ∩ B).
Free-standing rather than a trait default so a provider cannot accidentally
inherit a composed implementation while reporting sub_operations: 1. A
native implementor overrides MeshBoolean::boolean and never calls this.
Composition is the reason BooleanEvidence::sub_operations exists: without
it a caller cannot tell a three-pass emulation from a single-pass primitive,
and the two have materially different numerical behaviour.