Go Implementation of the Mesh Hole Filling Algorithm by Peter Liepa.
This code is based on the work done by russelmann in this repo.
Using the code is straightforward. Specify the path to your mesh in the input to readObj
. In the FillHoleLiepa
function, you can choose the triangle weight calculation method to be either "area" or "angle", based on papers by: Barequet & Sharir and Peter Liepa, respectively.
Please note: Singular vertices are not supported by the FindBoundaryLoops
function. That means no vertex should be adjacent to more than two boundary edges.
Left: original mesh - Middle: area-based method (Barequet paper) - Right: angle-based method (Liepa paper)