pub fn build_evolution_by_geometry(
input_faces: &[(usize, Vec3, Point3)],
output_faces: &[(usize, Vec3, Point3)],
) -> EvolutionMapExpand description
Build an EvolutionMap by matching output faces to input faces purely
from geometry (face normal + centroid signatures (index, normal, centroid)).
This is operation-agnostic — any op that can snapshot face signatures before and after (booleans, fillets, …) reuses it:
- An output face whose normal+centroid is close to an input face is a modified version of it (every near-tied input is recorded, so a same-domain merge of two inputs into one output keeps both origins).
- An output face matching no input is generated, attributed to the nearest input (e.g. a fillet blend face or a boolean intersection face).
- An input face matched by no output is deleted.