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
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