OpenMesh的功能和目标
底层数据结构的主要特征:
- 不仅限于三角形网格,也可以处理多边形网格;
- 顶点,半边,边及面的显示表示;
- 有效访问顶点的单环领域;
- 能够处理非流形几何(例如,两个面仅通过一个顶点相连);
使用C++的目的/特性:
- 柔顺性:
- 为标量及坐标选择合适的类型(例如,满足二维、三维或n维的float、double类型运算);
- 根据您自己的需求属性/性质强化项目类型。例如,加入一个向量或者FaceHandle类到Vertex类型中;
- 效率高:
- 避免虚拟继承和虚函数调用开销;
- 在编译时解析尽可能多的类型/属性依赖性,而不是在运行时测试属性(例如,面的法向量)。
- 句柄类型安全
不存在类型转换,顶点、半边、面能够识别其对应的句柄
自从版本0.10.0