<2x1>OpenMesh译稿:使用并理解OpenMesh-OpenMesh的功能和目标
程序员文章站
2022-04-12 08:42:24
OpenMesh的功能和目标底层数据结构的主要特征:不仅限于三角形网格,也可以处理多边形网格;顶点,半边,边及面的显示表示;有效访问顶点的单环领域;能够处理非流形几何(例如,两个面仅通过一个顶点相连);使用C++的目的/特性:柔顺性:为标量及坐标选择合适的类型(例如,满足二维、三维或n维的float、......
OpenMesh的功能和目标
底层数据结构的主要特征:
- 不仅限于三角形网格,也可以处理多边形网格;
- 顶点,半边,边及面的显示表示;
- 有效访问顶点的单环领域;
- 能够处理非流形几何(例如,两个面仅通过一个顶点相连);
使用C++的目的/特性:
- 柔顺性:
- 为标量及坐标选择合适的类型(例如,满足二维、三维或n维的float、double类型运算);
- 根据您自己的需求属性/性质强化项目类型。例如,加入一个向量或者FaceHandle类到Vertex类型中;
- 效率高:
- 避免虚拟继承和虚函数调用开销;
- 在编译时解析尽可能多的类型/属性依赖性,而不是在运行时测试属性(例如,面的法向量)。
- 句柄类型安全
不存在类型转换,顶点、半边、面能够识别其对应的句柄
自从版本0.10.0开始,支持Microsoft Visual C ++编译器。 由于编译器无法正确处理模板功能,因此类型安全在一定程度上进行了扩展。 虽然在此条件下使用了void类型指针,但后续中对此进行了类型转换,并且用户可以像以前一样使用句柄。只要编译器遵循C ++标准,便能够保证类型安全。
译者说明:因科研需要,避免重复造*,近来借用OpenMesh,因其结构封装严谨,灵活可靠,且十分方便,故抽出时间对官网的说明做
本文地址:https://blog.csdn.net/feengg/article/details/85983100
上一篇: JNI回调Java