The following picture shows the (simplified) conceptual inheritance diagram for the OpenMesh classes.
The basis for all meshes is the corresponding
MeshKernel, taking care of the internal storage of the mesh items (vertices, (half-)edges, faces). This kernel is inherited by the
PolyMeshT, i.e. the general polygonal mesh, adding higher level functionality. For specialization purposes the class
TriMeshT is derived from
PolyMeshT and overrides some member functions or adds functions only suitable for pure triangle meshes.
In most cases a class (e.g.
PolyMeshT) gets the class it should derive from (e.g. the mesh kernel) as a template parameter. The documentation class OpenMesh::Concepts::MeshKernel::KernelT lists the minimal interface a mesh kernel must provide. Special kernels may provide some more functionality, in this case refer to this kernel's documentation (see Mesh Kernels). Therefore your mesh provides the pubic member functions of