To parameterize the mesh, my program first asks the user to select one edge on the mesh. The edge will determine two adjacent triangles on the mesh. Then I set the coordinates for the 4 vertices to be corners of a unit square, force the laplacian of every vertex to zero, and solve the linear system. The solution will be completely on a plane, and inside the unit square. Every vertex's coordinate can be used as a uv coordinate for texture mapping.
Here I demonstrate the parameterization and texture mapping results of two meshes. Honestly speaking, the result is not satisfying, because forcing the texture borders on a very small area will cause very severe distortion. The smaller the area is, the more distortion there is. That is also the reason why I choose so simple and coarse meshes to demonstrate in this section. A better way for parameterization in my opinion, is to first a longer cut to make the mesh homeomorphic to a topological disk, then bind two opposite edges of the unit square to the cut, and recontruct with zero laplacian.