pub fn boolean_with_evolution(
topo: &mut Topology,
op: BooleanOp,
a: SolidId,
b: SolidId,
) -> Result<(SolidId, EvolutionMap), OperationsError>Expand description
Perform a boolean operation and return an crate::evolution::EvolutionMap
tracking face provenance.
Prefers faithful provenance from the GFA builder — each result face
records the input face it was split/derived from
(brepkit_algo::gfa::boolean_with_face_origins). Because that path runs the
GFA directly, it can take a different route than boolean (which
short-circuits some cases via AABB/containment fast paths), so its result is
validated; on a GFA error or an invalid result — and for identical or
fully-contained operand pairs (detect_trivial_relation) — it falls back to
boolean with the geometry heuristic (normal + centroid). Either way,
unmatched input faces are classified as “deleted”; synthesised result faces
with no input origin are left unattributed.
§Errors
Returns the same errors as boolean.