Skip to main content

build_evolution_by_geometry

Function build_evolution_by_geometry 

Source
pub fn build_evolution_by_geometry(
    input_faces: &[(usize, Vec3, Point3)],
    output_faces: &[(usize, Vec3, Point3)],
) -> EvolutionMap
Expand 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.