GeometryCollective / boundary-first-flattening

MIT License
758 stars 97 forks source link

Concepts in the project #79

Open perphyguo opened 1 year ago

perphyguo commented 1 year ago

Hi:

I am a novice in surface parameterization. I am scrutinizing your awesome project.

There are lots of concepts confuse me. Like:

  1. I know Neumann and Dirichlet boundary conditions. In Bff.cpp you have convertNeumannToDirichlet and convertDirichletToNeumann. Why these can convert to each other and what is the purpose.
  2. The disk in flattenToDisk is the circle. In mapToSphere, what is the sphere exact mean?
  3. In HalfEdge data structure, I see you have corner. I did not see concept corner in any papers or videos in halfedge. What the corner in halfedge used for?

I know maybe I am asking stupid question. If you think it is so tedious to answer, would you give me the related studying documents? If I can figure these questions out, I can help improve your documents from the view of a novice.

Thanks very much!

rohan-sawhney commented 1 year ago

Hi,

  1. you can find details regarding why we convert the boundary data in Section 4.3 here
  2. mapToSphere is meant for meshes are closed or watertight (such as the bunny). You can either map such meshes to the plane by cutting them, or to the sphere without any cuts.
  3. the corner structure represents the corner of a triangle. It's helpful abstraction to compute e.g., angles.