整体框图
大多数继承关系都是通过模板参数化实现的! 这张照片显示了整体概念。
构建内核
- BaseKernel定义了添加/删除/访问等属性的基本操作。
- AttribKernelT添加所有相关方法的标准属性。
- ArrayKernelT提供了添加/删除/访问网格项顶点,(半)边和面的方法。 基类作为模板参数传递,因为根据底层存储类型,AttribKernel可能会更改。
构建网格
- PolyMeshT继承自内核,并提供了处理多边形网格所需的所有方法。
- 从PolyMeshT派生出TriMeshT,使其具有三角网格的特化。
- 要生成实际网格类型,请使用辅助模板类TriMesh_ArrayKernel_GeneratorT。 它接受模板参数中的特征并将其传递给FinalMeshItemsT以获取网格项的最终类型(MeshItems)。 MeshItems定义Point,Normal,Color,TexCoord,Vertex和所有网格项的类型。 在MeshItems的帮助下,创建AttribKernel的类型,它定义了项目的适当标准属性。 最后使用AttribKernel和MeshItems创建网格内核类型MeshKernel。 这是获得内核的一种方式。 只要创建的内核遵循内核概念(Mesh Kernels),我们就可以轻松地创建网格。 这里我们现在使用TriMeshT来创建最终的网格类型Mesh。