A mesh is made up of vertices, edges and faces. If the mesh is static and not going to change, we can get away with just storing the vertices and a list of faces, which index into the vertex array. This does away with edges all together and is well suited to rendering on graphics hardware.
However, if we desire to perform operations on the mesh that will change the connectivity and structure, then we need to store the information in a data structure that will allow us to quickly traverse points, edges or faces. The halfedge structure is one such structure (among many) that will give us the versatility we need.
Thsi dynamic mesh class uses a half edge data structure for fast mesh operations such as split, collapse and rotate edges. It comes with a very useful 3D vector class and also has functions for loading and saving in obj format. It is an ideal starting point for applications such as:
- Virtual clay modelling tool like mudbox/sculptris
- Fluid simulation surface tracking
- Artificial morphogenesis simulation
- Surface extraction (point sets, implicit surfaces, MRI data, etc)
- Retargeting meshes
- 3D morphing
- Creating meshes for FEM/BEM analysis
- View dependent level of detail: eg realtime terrains for games, flightsims, etc
The package comes with a demo project, which is a fully functional 3D virtual clay sculpting tool, like MudBox or Sculptris.