header

OpenVolumeMesh


A Generic and Versatile Index-Based Data Structure for Polytopal Meshes


OpenVolumeMesh is a generic data structure for the comfortable handling of arbitrary polytopal meshes. Its concepts are closely related to OpenMesh. In particular, OpenVolumeMesh carries the general idea of storing edges as so-called (directed) half-edges over to the face definitions. So, faces are split up into so-called half-faces having opposing orientations. But unlike in the original concept of half-edges, local adjacency information is not stored on a per half-edge basis. Instead, all entities are arranged in arrays, which makes OpenVolumeMesh an index-based data structure where the access to entities via handles is accomplished in constant time complexity. By making the data structure index-based, we alleviate the major drawback of the half-edge data structure of only being capable to represent manifold meshes. In our concept, each entity of dimension n only stores an (ordered) tuple of handles (or indices) pointing to the incident entities of dimension (n-1). These incidence relations are called the top-down incidences. They are intrinsic to the implemented concept of volumentric meshes. One can additionally compute bottom-up incidences, which means that for each entity of dimension n, we also store handles to incident entities of dimension (n+1). These incidence relations have to be computed explicitly which can be performed in linear time complexity. Both incidence relations, the top-down and the bottom-up incidences, are used to provide a set of iterators and circulators that are comfortable in use. As in OpenMesh, OpenVolumeMesh provides an entirely generic underlying property system that allows attaching properties of any kind to the entities.



News

Version 2.0.0 released

A new version of OpenVolumeMesh has been released.
- A new kernel for tetrahedral meshes was added.
- When deleting entities they are only marked as deleted and will be skipped by iterators. Deleted entities are actually deleted by a call to collect_garbage(). The old behavior can be activated by calling enable_deferred_deletion(false).
- Deleting entities will be faster now, but the way handles are updated changed. If you rely on the way handles have been updated previously, the old behavior can be activated by calling enable_fast_deletion(false).

Aug. 3, 2016

Version 1.1.0 released

A new version of OpenVolumeMesh has been released.
- This one fixes a major bug that occurs when deleting entities.
- Also a whole lot of new unit tests have been integrated.

Nov. 2, 2013
Disclaimer Home Visual Computing institute RWTH Aachen University