OpenMesh 几何向量运​​算

OpenMesh geometric vector operations

OpenMesh 有它的 VectorT class,我相信它用于执行各种位置向量操作(additions/subtractions、内积和外积等)。有没有关于如何实际使用它的例子?我会对

特别感兴趣
  1. 如何定义和初始化 3D 坐标向量
  2. 如何正确地将顶点位置(Point 类型)转换为 VectorT 类型,或者,如何立即将顶点位置作为 VectorT 类型。到目前为止,我使用的是 mesh.point(vhandle),但是 returns 是 Point() 类型。

编辑: 显然 Point 是某种 VectorT 本身,因为 VectorT 成员函数作用于 Point 对象还有。

使用OpenMesh原生点类型的数学运算示例:

  1. OpenMesh::Vec3f myVec = OpenMesh::Vec3f(0, 0, 0);

  2. float distance = (point1 - point2).norm(); 也可用:l1_norm()l8_norm()sqrnorm()

  3. Point interpolated_point = (1 - a) * point1 + a * point2;

  4. Vec3f crossProduct = vec1 % vec2; 仅为 Vec3 定义(正如您提到的 Point

  5. Vec3f dotProduct = vec1 | vec2;