Tidied up documentation (especially the mainpage) to improve usability. Added a new tutorial on building projects using OpenMesh.
git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@275 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
@@ -638,7 +638,8 @@ EXAMPLE_PATH = Examples \
|
|||||||
# blank all files are included.
|
# blank all files are included.
|
||||||
|
|
||||||
EXAMPLE_PATTERNS = *.cc \
|
EXAMPLE_PATTERNS = *.cc \
|
||||||
*.hh
|
*.hh \
|
||||||
|
*.txt
|
||||||
|
|
||||||
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
|
# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
|
||||||
# searched for input files to be used with the \include or \dontinclude
|
# searched for input files to be used with the \include or \dontinclude
|
||||||
|
|||||||
20
Doc/Tutorial/CMakeLists.txt
Normal file
20
Doc/Tutorial/CMakeLists.txt
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
include (ACGCommon)
|
||||||
|
|
||||||
|
include_directories (
|
||||||
|
../../..
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}
|
||||||
|
)
|
||||||
|
|
||||||
|
set (targetName MyOwnProject)
|
||||||
|
|
||||||
|
# collect all header and source files
|
||||||
|
acg_append_files (headers "*.hh" .)
|
||||||
|
acg_append_files (sources "*.cc" .)
|
||||||
|
|
||||||
|
acg_add_executable (${targetName} ${headers} ${sources})
|
||||||
|
|
||||||
|
target_link_libraries (${targetName}
|
||||||
|
OpenMeshCore
|
||||||
|
OpenMeshTools
|
||||||
|
)
|
||||||
|
|
||||||
@@ -2,46 +2,83 @@
|
|||||||
|
|
||||||
Welcome to the %OpenMesh documentation. %OpenMesh is a generic and efficient library
|
Welcome to the %OpenMesh documentation. %OpenMesh is a generic and efficient library
|
||||||
that offers data structures for representing and manipulating polygonal meshes.
|
that offers data structures for representing and manipulating polygonal meshes.
|
||||||
|
It is a powerful tool for handling polygonal
|
||||||
|
meshes. Due to its inherent generative structure it allows the user to
|
||||||
|
create mesh types which are custom tailored to the specific needs of
|
||||||
|
the application. The user can either supply his own data structures
|
||||||
|
for representing vertices, edges and faces or he can conveniently use
|
||||||
|
the predefined structures of %OpenMesh.
|
||||||
|
Additionally %OpenMesh offers dynamic properties allowing the user to attach
|
||||||
|
and detach data to the mesh during runtime.
|
||||||
|
|
||||||
Here you can find information on how to build projects using the %OpenMesh library
|
Here you can find information on how to build projects using the %OpenMesh library
|
||||||
as well as further information on mesh handling in %OpenMesh.
|
as well as further information on mesh handling in %OpenMesh.
|
||||||
The tutorials explain how to use %OpenMesh by demonstrating real code examples.
|
The tutorials explain how to use %OpenMesh by demonstrating real code examples.
|
||||||
|
|
||||||
\section iov Introduction
|
\section iov Building OpenMesh
|
||||||
In this section all necessary information on how to build projects using %OpenMesh
|
In this section all necessary information on how to build projects using %OpenMesh
|
||||||
is given. Additionally you can read about the internal naming conventions
|
is given.
|
||||||
to facilitate understanding the %OpenMesh source code. Changes to %OpenMesh are
|
|
||||||
logged in the Version history.
|
|
||||||
|
|
||||||
\li \ref compiling
|
\li \ref compiling
|
||||||
\li \ref naming_conventions
|
|
||||||
\li \ref history
|
\section tutorial Tutorials (code examples)
|
||||||
|
|
||||||
|
This section is supposed to introduce the basic concepts of
|
||||||
|
%OpenMesh. <!--For detailed information, consult the online documentation
|
||||||
|
(\ref mesh_docu).-->
|
||||||
|
|
||||||
|
<!--In this tutorial we will introduce the %OpenMesh library by means of
|
||||||
|
simple examples. The first one just builds a polygonal mesh
|
||||||
|
representing a cube and writes the result to standard output. The
|
||||||
|
following examples develop a simple mesh smoother: Recall that the
|
||||||
|
immediate neighbors of a vertex are called the 1-ring of this
|
||||||
|
vertex. It is well known that a polygonal mesh can be smoothed by
|
||||||
|
repeatedly replacing each vertex' position by the center of gravity
|
||||||
|
(cog) of its 1-ring. The basic smoother will
|
||||||
|
|
||||||
|
\li read a polygonal mesh from standard input,
|
||||||
|
\li compute the cog of the 1-ring of each vertex,
|
||||||
|
\li replace each vertex' position by its cog and finally,
|
||||||
|
\li write the mesh to standard output.-->
|
||||||
|
|
||||||
|
\li \ref mesh_type
|
||||||
|
\li \ref tutorial_01
|
||||||
|
\li \ref tutorial_build
|
||||||
|
\li \ref tutorial_02
|
||||||
|
\li \ref tutorial_03
|
||||||
|
\li \ref tutorial_04
|
||||||
|
\li \ref tutorial_05
|
||||||
|
\li \ref tutorial_06
|
||||||
|
\li \ref tutorial_07
|
||||||
|
\li \ref tutorial_07b
|
||||||
|
\li \ref tutorial_08
|
||||||
|
\li \ref tutorial_09
|
||||||
|
|
||||||
\section mesh_docu Using and understanding OpenMesh
|
\section mesh_docu Using and understanding OpenMesh
|
||||||
|
|
||||||
We provide a short overview over the functionality of the %OpenMesh
|
We provide a short overview over the functionality of the %OpenMesh
|
||||||
library and some additional concepts in \ref tutorial. Additionally we explain the
|
library and some additional concepts in \ref tutorial. Additionally, we explain the
|
||||||
most important topics of %OpenMesh in the following sections:
|
most important topics of %OpenMesh in the following sections:
|
||||||
|
|
||||||
\li \ref mesh_first_to_read
|
\li \ref mesh_first_to_read
|
||||||
\li \ref mesh_features
|
\li \ref mesh_features
|
||||||
\li \ref mesh_cpp
|
\li \ref mesh_cpp
|
||||||
|
\li \ref mesh_hierarchy
|
||||||
\li \ref mesh_hds
|
\li \ref mesh_hds
|
||||||
\li \ref mesh_iterators
|
\li \ref mesh_iterators
|
||||||
\li \ref mesh_navigation
|
\li \ref mesh_navigation
|
||||||
\li \ref mesh_io
|
\li \ref mesh_io
|
||||||
\li \ref mesh_type
|
|
||||||
\li \ref mesh_operations
|
\li \ref mesh_operations
|
||||||
\li \ref mesh_hierarchy
|
|
||||||
\li \ref mesh_members
|
|
||||||
|
|
||||||
The %OpenMeshTools library that contains some useful tools
|
The %OpenMeshTools library that contains some useful tools
|
||||||
for i.e. mesh processing:
|
for i.e. mesh processing:
|
||||||
|
|
||||||
\li \ref tools_docu
|
\li \ref tools_docu
|
||||||
|
|
||||||
\section tov Tutorials
|
\section background Additional information on OpenMesh
|
||||||
This section offers some useful code examples in order to show
|
|
||||||
how to use the provided mesh structures.
|
|
||||||
|
|
||||||
\li \ref tutorial
|
\li \ref mesh_members
|
||||||
|
\li \ref naming_conventions
|
||||||
|
\li \ref history
|
||||||
|
|
||||||
**/
|
**/
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
/** \page mesh_first_to_read Start here (Notes on template programming)!
|
/** \page mesh_first_to_read Notes on template programming
|
||||||
|
|
||||||
Please note, that %OpenMesh makes heavily use of C++ templates,
|
Please note, that %OpenMesh makes heavily use of C++ templates,
|
||||||
generic programming and all that stuff (see \ref mesh_cpp). Therefore
|
generic programming and all that stuff (see \ref mesh_cpp). Therefore
|
||||||
@@ -47,7 +47,7 @@ OpenMesh::PolyMeshT can use any kernel.
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
/** \page mesh_features Features and Goals
|
/** \page mesh_features Features and Goals of OpenMesh
|
||||||
|
|
||||||
The main features of the underlying data structure are:
|
The main features of the underlying data structure are:
|
||||||
|
|
||||||
@@ -602,7 +602,7 @@ provides the pubic member functions of
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
/** \page mesh_io Mesh Input and Output
|
/** \page mesh_io Mesh Read and write files
|
||||||
|
|
||||||
This section explains the methods used to read a mesh from a file or
|
This section explains the methods used to read a mesh from a file or
|
||||||
write it to a file. The corresponding functions are defined in the
|
write it to a file. The corresponding functions are defined in the
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
/** \page mesh_operations Some basic operations on a mesh
|
/** \page mesh_operations Some basic operations: Flipping and collapsing edges
|
||||||
|
|
||||||
In this section you will learn about some basic operations on a mes that %OpenMesh
|
In this section you will learn about some basic operations on a mes that %OpenMesh
|
||||||
already provides. Comprising the flipping of edges in a triangle mesh as well as
|
already provides. Comprising the flipping of edges in a triangle mesh as well as
|
||||||
|
|||||||
29
Doc/tutorial_build.docu
Normal file
29
Doc/tutorial_build.docu
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
/** \page tutorial_build How to create your own project using OpenMesh
|
||||||
|
|
||||||
|
In this tutorial we will explain, how to create a new project using
|
||||||
|
%OpenMesh and build it with the CMake build system. We assume, that you have already
|
||||||
|
downloaded the %OpenMesh source files as well as installed the CMake build tools.
|
||||||
|
|
||||||
|
There are quite few steps to follow to successfully add your own application to the build tree:
|
||||||
|
|
||||||
|
\li Go to OpenMeshRoot/src/OpenMesh/Apps and create a new directory, say "MyOwnProject"
|
||||||
|
\li Now create a new file called "CMakeLists.txt" containing the following lines:
|
||||||
|
|
||||||
|
\include CMakeLists.txt
|
||||||
|
|
||||||
|
(Remember to replace "MyProjectName" with whatever you have chosen as your project's name.
|
||||||
|
Note: If you don't want to use *.hh and *.cc as your C++ source file suffices, you'll
|
||||||
|
have to change this, too, because CMake won't build your sources otherwise.
|
||||||
|
|
||||||
|
\li Create your source files as for example explained in the previous tutorial (\ref tutorial_01)
|
||||||
|
and save them in the same directory.
|
||||||
|
|
||||||
|
\li Add \code add_subdirectory (MyOwnProject) \endcode to OpenMeshRoot/src/OpenMesh/Apps/CMakeLists.txt (note: You can either
|
||||||
|
add this line right after the other projects or at the end of the file).
|
||||||
|
|
||||||
|
\li Create a directory called "build" in OpenMesh's root directory. Change to the newly created directory and call
|
||||||
|
\code cmake .. \endcode and \code make \endcode
|
||||||
|
|
||||||
|
That's all. Your project will now be built.
|
||||||
|
|
||||||
|
**/
|
||||||
Reference in New Issue
Block a user