Developer Documentation

OpenMesh Documentation

Welcome to the OpenMesh documentation. OpenMesh is a generic and efficient library that offers data structures for representing and manipulating polygonal meshes. It 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.

Here you can find information on how to build projects using the OpenMesh library as well as further information on mesh handling in OpenMesh. The tutorials explain how to use OpenMesh by demonstrating real code examples.

# OpenMesh Python Bindings

We also provide python bindings for OpenMesh. You can find them here:
`https://www.graphics.rwth-aachen.de:9000/OpenMesh/openmesh-python`

# Building OpenMesh

In this section all necessary information on how to build projects using OpenMesh is given.

- Compiling OpenMesh

Using and understanding OpenMesh

We provide a short overview over the functionality of the OpenMesh library and some additional concepts in Tutorials (code examples). Additionally, we explain the most important topics of OpenMesh in the following sections:

- Features and Goals of OpenMesh
- The Halfedge Data Structure
- Mesh Iterators and Circulators
- How to navigate on a mesh
- Read and write meshes from files
- Some basic operations: Flipping and collapsing edges
- Conceptual Class Hierarchy

The OpenMeshTools library that contains some useful tools for i.e. mesh processing:

- OpenMesh Tools Documentation

Tutorials (code examples)

This section is supposed to introduce the basic concepts of OpenMesh.

- Specifying your MyMesh
- First Steps - Building a cube
- How to create your own project using OpenMesh
- Using iterators and circulators
- Using (custom) properties
- Using STL algorithms
- Using Smart Handles
- Using standard properties
- Using mesh attributes and traits
- Extending the mesh using traits
- Deleting geometry elements
- Using IO::Options
- Using custom properties (old style)
- Storing custom properties

Additional Information on OpenMesh

- Notes on template programming
- Some words on the C++ implementation
- Where do I find a list of all member functions ?
- Naming Conventions
- Some Notes on how to speedup OpenMesh
- Changelog