pub fn delete_face_and_heal(
solid: &BrepSolid,
face_id: u64,
) -> Result<BrepSolid, String>Expand description
Golovanov §6.12 — delete a transition face and heal the hole by extending
and re-intersecting its immediate neighbours. See the module docs for the
covered vs deferred cases. Returns a fresh solid that is guaranteed to
validate() AND to be sound, or a clear Err describing why the heal was
refused.
validate() is an incidence test and cannot see a body passing through
itself, which a re-intersected rim is exactly the kind of thing to produce:
a fold or a crossing changes the AREA where it does not change the volume,
so no closed-form oracle downstream notices. crate::accept_sound is
that floor, and it runs on the way out of the public entry only — the
set driver’s chain calls [delete_face_and_heal_impl] so a ten-face
selection pays for one scan and not ten.