mainpage.docu 2.61 KB
Newer Older
Mike Kremer's avatar
Mike Kremer committed
1 2 3
/** 
\mainpage OpenVolumeMesh Documentation

Mike Kremer's avatar
Mike Kremer committed
4 5
\image html volume_mesh.png

Mike Kremer's avatar
Mike Kremer committed
6 7
Welcome to the %OpenVolumeMesh documentation. %OpenVolumeMesh is a generic data structure
for the comfortable handling of arbitrary polyhedral meshes. Its concepts are closely related
8
to OpenMesh (http://www.openmesh.org). In particular, %OpenVolumeMesh carries the general idea
Mike Kremer's avatar
Mike Kremer committed
9
of storing edges as so-called (directed) half-edges over to the face definitions.
Mike Kremer's avatar
Mike Kremer committed
10
So, faces are split up into so-called half-faces having opposing orientations.
Mike Kremer's avatar
Mike Kremer committed
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Furthermore, in %OpenVolumeMesh the data is arranged in a \e top-down hierarchy,
meaning that each entity of dimension n is defined through a (ordered) tuple of entities of
dimension (n-1). These are the intrinsic adjacency
relations of the volumentric meshes. One can additionally compute \e bottom-up adjacencies
which means that for each entity of dimension n, we also store its local adjacencies to
entities of dimension (n+1). These adjacency relations have to be computed explicitly
which can be performed in linear time complexity. Both adjacency relations, the top-down
and the bottom-up adjacencies, 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.

In this documentation, we first give a concise overview of the implemented concepts
in Section \ref concepts. In Section \ref iterators_and_circulators, we introduce
all necessary iterators provided by %OpenVolumeMesh. This library is additionally shipped with
a file format that allows for reading and permanent storage of the volumetric meshes from/to files.
Its specification can be found in \ref file_format. For information on the property system,
Mike Kremer's avatar
Mike Kremer committed
27
please refer to Section \ref property_system. Step-by-step tutorials and code examples can be
Mike Kremer's avatar
Mike Kremer committed
28 29 30 31 32 33 34
found in the tutorials section. %OpenVolumeMesh comes with a complete CMake build system
which facilitates building the library platform-independently. It is written in pure C++
using the standard template library and does not have any external dependencies except
for GoogleTest which is (optionally) needed for building the unit tests. As per default,
the unit tests are excluded from the build but can turned on as desired. Find information
on how to build %OpenVolumeMesh in Section \ref building_openvolumemesh.

Mike Kremer's avatar
Mike Kremer committed
35
\b Overview:
Mike Kremer's avatar
Mike Kremer committed
36 37 38 39 40 41 42

\li \ref concepts
\li \ref iterators_and_circulators
\li \ref file_format
\li \ref property_system
\li \ref building_openvolumemesh

Mike Kremer's avatar
Mike Kremer committed
43
\b Tutorials:
Mike Kremer's avatar
Mike Kremer committed
44 45 46

\li \ref tutorial_01
\li \ref tutorial_02
47 48
\li \ref tutorial_03
\li \ref tutorial_04
Mike Kremer's avatar
Mike Kremer committed
49 50

**/