private void CloseCuttingSurfaceHoles(MeshPlaneCut cut) { foreach (var loop in cut.CutLoops) { var holeFill = new MinimalHoleFill(cut.Mesh, loop); holeFill.Apply(); } }
private void FillAnyHoles(DMesh3 mesh, CancellationToken cancellationToken, out int nRemaining, out bool sawSpans) { var loops = new MeshBoundaryLoops(mesh); nRemaining = 0; sawSpans = loops.SawOpenSpans; foreach (var loop in loops) { cancellationToken.ThrowIfCancellationRequested(); var filler = new MinimalHoleFill(mesh, loop); bool filled = filler.Apply(); if (filled == false) { cancellationToken.ThrowIfCancellationRequested(); var fallback = new SimpleHoleFiller(mesh, loop); fallback.Fill(); } } }