README.md 6.16 KB
Newer Older
Jan Möbius's avatar
Jan Möbius committed
1
-----
Mike Kremer's avatar
Mike Kremer committed
2
                            OpenVolumeMesh                                 
Jan Möbius's avatar
Jan Möbius committed
3
4
5
        Copyright (C) 2011-2018 by Computer Graphics Group, RWTH Aachen         
                         www.openvolumemesh.org                             
-----
Mike Kremer's avatar
Mike Kremer committed
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
                                                                           
  OpenVolumeMesh is free software: you can redistribute it and/or modify   
  it under the terms of the GNU Lesser General Public License as           
  published by the Free Software Foundation, either version 3 of           
  the License, or (at your option) any later version with the              
  following exceptions:                                                    
                                                                           
  OpenVolumeMesh is distributed in the hope that it will be useful,        
  but WITHOUT ANY WARRANTY; without even the implied warranty of           
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the            
  GNU Lesser General Public License for more details.                      
                                                                           
  You should have received a copy of the GNU LesserGeneral Public          
  License along with OpenVolumeMesh. If not,                              
  see <http://www.gnu.org/licenses/>.                                      
                                                                           

Jan Möbius's avatar
Jan Möbius committed
23
24

# Overview:
Mike Kremer's avatar
Mike Kremer committed
25
26
27
28
29
30
31

0. Introduction
1. System Requirements
2. Building OpenVolumeMesh
3. License Information


Jan Möbius's avatar
Jan Möbius committed
32
# 0. Introduction
Mike Kremer's avatar
Mike Kremer committed
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

Thank you for downloading and using the OpenVolumeMesh library. OpenVolumeMesh
is a generic data structure for the comfortable handling of arbitrary
polyhedral meshes. Its concepts are closely related to OpenMesh
<http://www.openmesh.org>. 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. Furthermore, in OpenVolumeMesh the data is arranged in a 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
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 order to learn more about the implementational details of
OpenVolumeMesh, please refer to the only documentation which is available
at <http://openvolumemesh.org/Documentation/OpenVolumeMesh-Doc-Latest>.

OpenVolumeMesh is entirely written in C++ making heavy use of the
standard template library as well as template programming paradigms.
Although OpenVolumeMesh has been developed to the best of my knowledge,
it does not claim to be free from defects nor does it raises the claim to
have inveterate underlying implemented concepts. So, any ambitious developer
is invited to participate in the development process to make OpenVolumeMesh
a well-working, reliable, and useful library. Please feel free to commit
suggestions, bug reports, or patches to the OpenVolumeMesh project management
system (redmine), which you find at

Jan Möbius's avatar
Jan Möbius committed
65
<https://www.graphics.rwth-aachen.de:9000/OpenVolumeMesh/OpenVolumeMesh>,
Mike Kremer's avatar
Mike Kremer committed
66

Jan Möbius's avatar
Jan Möbius committed
67
or you can send them directly to the following e-mail address which is
Mike Kremer's avatar
Mike Kremer committed
68

Jan Möbius's avatar
Jan Möbius committed
69
<moebius@cs.rwth-aachen.de>.
Mike Kremer's avatar
Mike Kremer committed
70
71


Jan Möbius's avatar
Jan Möbius committed
72
# 1. System Requirements
Mike Kremer's avatar
Mike Kremer committed
73
74
75
76

OpenVolumeMesh is shipped as source project and can be built on all common
architectures and operating systems including:

Jan Möbius's avatar
Jan Möbius committed
77
- Windows 7/8/10 with Visual Studio 2013 or higher
Mike Kremer's avatar
Mike Kremer committed
78

Jan Möbius's avatar
Jan Möbius committed
79
- MacOSX with latest XCode 
Mike Kremer's avatar
Mike Kremer committed
80

Jan Möbius's avatar
Jan Möbius committed
81
- Linux with GCC 6 and higher
Mike Kremer's avatar
Mike Kremer committed
82
83
84
85
86
87
88
89
90
91

Note that OpenVolumeMesh uses CMake as build system, so make sure that
the latest version of CMake is installed on your computer. Download
CMake under <http://www.cmake.org>.

Note also that, in order to build the documentation, you will need to
have Doxygen installed on your computer. Download Doxygen under
<http://www.doxygen.org>. The use of Doxygen is not mandatory though.


Jan Möbius's avatar
Jan Möbius committed
92
# 2. Building OpenVolumeMesh
Mike Kremer's avatar
Mike Kremer committed
93
94

OpenVolumeMesh is equipped with a CMake build system <http://www.cmake.org>.
Jan Möbius's avatar
Jan Möbius committed
95
Make sure that at least version 3.7 of CMake is installed on your computer.
Mike Kremer's avatar
Mike Kremer committed
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
Once CMake is installed, perform the following steps (on Linux, Mac OSX):

- Create a build directory somewhere outside the source directory
  of OpenVolumeMesh. Name it e.g. "OVM-build-release", or whatever
  name might be suitable.

- Change into the recently created directory and type
  "cmake /path/to/OpenVolumeMesh/sources".

- If you want to change the build configuration, say from debug to release,
  type "ccmake .". Note that unless not explicitly specified otherwise, CMake
  sets the build configuration such that it will be built with debug flags on.

- Once everything is configured to your satisfaction, type "make" followed
  by "sudo make install" in order to build and install the library.

On Windows, start the CMake gui tool and set the path to OpenVolumeMesh's
Jan Möbius's avatar
Jan Möbius committed
113
sources. Then select the target project type (Visual Studio 20xx)
Mike Kremer's avatar
Mike Kremer committed
114
115
116
117
118
119
and click on "Configure". Once everything is configured to your satisfaction,
click on "Generate". You will now find a Visual Studio project file
in the specified build folder (which is "Build" per default). Open this
file in Visual Studio and select "Build all".


Jan Möbius's avatar
Jan Möbius committed
120
# 3. License Information
Mike Kremer's avatar
Mike Kremer committed
121
122
123
124
125
126
127
128

OpenVolumeMesh is free software licensed under the terms of the
GNU Lesser General Public License Version 3 as published by the Free Software
Foundation. You can redistribute and/or modify it as stated in the
above mentioned license terms. A copy of the license can be found
in the license sub-folder of this source-tree or under
<http://www.gnu.org/licenses>. By downloading and using the OpenVolumeMesh
library you automatically agree to these terms.