Graph Search
Setup
We convert the curve network into a routing system by finding all possible corner mappings at each vertex . Then we compute the edge cost of the graph as follows:
- For each triplet of consecutive curves, we compute its intra-bridge cost. In particular, we loop through equi-angularly spaced normals and set the intra-bridge cost of the bridge to be the smallest intra-bridge cost attained by parallel transporting the normals across the triplet of curves.
- For each curve with vertices and , we find all combinations of corner mappings at and . For each combination, we compute the inter-bridge cost using the normals computed when finding the intra-bridge cost.
- Set the cost of an edge between two corner mappings to be the lowest sum of intra-bridge cost and inter-bridge cost.
Search
We use a classic graph search algorithm to find the optimal set of cycles. Starting from an empty set of vertices, we expand to a new vertex one at a time. At every step, we compute the minimum-weight subgraph of that cover . We stop when covers all vertices in the curve network.
Meshing
The output of the graph search is a routing system, namely a corner mapping per vertex and a bridge mapping per curve. We convert this routing system into a set of cycles by following paths along the corner mapping and bridge mapping. For each cycle we run the classic triangulation algorithms (Liepa 2003) to establish a closed mesh patch, and then run isotropic remeshing algorithm (Botsch and Kobbelt 2004) to optimize the triangulation. Finally, we stitch the mesh patches together to form a closed mesh, which is the output of the sketch-to-mesh algorithm.