Developer Documentation

Tutorials (code examples)

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

- read a polygonal mesh from standard input,
- compute the cog of the 1-ring of each vertex,
- replace each vertex' position by its cog and finally,
- write the mesh to standard output.

1. How to create your own project using OpenMesh
2. First Steps - Building a cube
3. Using iterators and circulators
4. Using (custom) properties
5. Using STL algorithms
6. Using Smart Handles
7. Using standard properties
8. Using mesh attributes and traits
9. Extending the mesh using traits
10. Deleting geometry elements
11. Using IO::Options
12. Using custom properties (old style)
13. Storing custom properties