Operation::Heal

Repairs a non-supersolid mesh into a supersolid one with strong guarantees

Meshes with MeshBuilder::AllowNonSupersolid or MeshType::NonSupersolid are considered "bad input" and will be rejected by operations that require supersolid meshes.

This operation "heals" the mesh and computes a supersolid mesh that closely resembles the input, trying to reuse as much surface as reasonable.

Note:
this method is 100% robust in the sense that ANY input geometry will be mapped without failure to a supersolid version with certain strong guarantees. However, for particularly bad cases the output might not correspond to the user intuition. Please contact us if you think the result is particularly unreasonable.
Note:
this method will only attempt to heal a mesh if it was marked with MeshBuilder::AllowNonSupersolid or MeshType::NonSupersolid.
Note:
if a solid mesh is desired, Operation::Heal followed by Operation::SelfUnion is an effective combination.
Note:
for feedback on what parts of the mesh are non-supersolid, see Operation::ExportDefectNetwork.

Signature

class Operation:
    // Repairs a non-supersolid mesh into a supersolid one with strong guarantees
    fun heal(
        inMesh: MeshOperand,
    ) -> MeshOperand