OpenMesh
|
Since there is no such thing as a OpenMesh class and the library makes heavy use of C++ template, we show the inheritance graph of OpenMesh::TriMesh_ArrayKernelT as proxy for all possible mesh types.
Please note! Most of the inheritence relationships are realized by template parameterization! Therefore some of the inheritance links are not documented in a inheritance graph in the reference. This picture shows the overall concept.
Looks simple, but it isn't - it's a bit more complicated:
To generate the actual mesh type the helper template class TriMesh_ArrayKernel_GeneratorT
is used. It takes the traits in a template argument and passes it to FinalMeshItemsT
to get the final type of the mesh items (MeshItems). The MeshItems
defines the types for Point, Normal, Color, TexCoord, Vertex, and for all mesh items. With the help of MeshItems
create the type of the AttribKernel
, which defines the apropriate standard properties for the items. Finally use AttribKernel
and MeshItems
to create the mesh kernel type MeshKernel
. It's quite a way to get a kernel . As long as the created kernel follows the kernel concept (Mesh Kernels), we can easily create now the mesh. Here we use now TriMeshT
to create the final mesh type Mesh
.