mainpage.docu 2.69 KB
Newer Older
Mike Kremer's avatar
Mike Kremer committed
1
/** 
2
\if OPENVOLUMEMESH_INTERNAL_DOC
Mike Kremer's avatar
Mike Kremer committed
3
\mainpage OpenVolumeMesh Documentation
4 5 6
\else
\page OpenVolumeMeshDoc Documentation
\endif
Mike Kremer's avatar
Mike Kremer committed
7

Mike Kremer's avatar
Mike Kremer committed
8 9
\image html volume_mesh.png

Mike Kremer's avatar
Mike Kremer committed
10 11
Welcome to the %OpenVolumeMesh documentation. %OpenVolumeMesh is a generic data structure
for the comfortable handling of arbitrary polyhedral meshes. Its concepts are closely related
12
to OpenMesh (http://www.openmesh.org). In particular, %OpenVolumeMesh carries the general idea
Mike Kremer's avatar
Mike Kremer committed
13
of storing edges as so-called (directed) half-edges over to the face definitions.
Mike Kremer's avatar
Mike Kremer committed
14
So, faces are split up into so-called half-faces having opposing orientations.
Mike Kremer's avatar
Mike Kremer committed
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
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
31
please refer to Section \ref property_system. Step-by-step tutorials and code examples can be
Mike Kremer's avatar
Mike Kremer committed
32 33 34 35 36 37 38
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
39
\b Overview:
Mike Kremer's avatar
Mike Kremer committed
40 41 42 43 44 45 46

\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
47
\b Tutorials:
Mike Kremer's avatar
Mike Kremer committed
48 49 50

\li \ref tutorial_01
\li \ref tutorial_02
51 52
\li \ref tutorial_03
\li \ref tutorial_04
Mike Kremer's avatar
Mike Kremer committed
53 54

**/