The OpenMesh mesh library is a powerful tool for handling polygonal meshes.
Due to its inherent generative structure it allows the user to create mesh types which are custom tailored to the specific needs of the application. The user can either supply his own data structures for representing vertices, edges and faces or he can conveniently use the predefined structures of OpenMesh. Additionally OpenMesh offers dynamic properties allowing the user to attach and detach data to the mesh during runtime.
This document is supposed to introduce the basic concepts of OpenMesh.
In this tutorial we will introduce the OpenMesh library by means of simple examples. The first one just builds a polygonal mesh representing a cube and writes the result to standard output. The following examples develop a simple mesh smoother: Recall that the immediate neighbors of a vertex are called the 1-ring of this vertex. It is well known that a polygonal mesh can be smoothed by repeatedly replacing each vertex' position by the center of gravity (cog) of its 1-ring. The basic smoother will