In order to iterate over the entities of a mesh or just a certain neighborhood (circulator) of an entity, OpenVolumeMesh provides a set of iterators and circulators. These iterators are entirely STL-compatible and can as such be used in all algorithms of the C++ standard template library. We distinguish between two different kinds of iterators:
For information on bottom-up incidences, refer to Section Concepts of OpenVolumeMesh. Note since OpenVolumeMesh is an index-based data structure, the iterators encapsulate handles to entities. Dereferencing an iterator thus never returns a reference to the entity itself but only a handle to the entity.
The following sections provide a concise overview of the iterators that come along with OpenVolumeMesh.