【问题标题】:Half Edge data structure mesh - OpenMesh C++ - Boundary halfedges in edge半边数据结构网格 - OpenMesh C++ - 边中的边界半边
【发布时间】:2023-03-16 07:28:01
【问题描述】:

在mesh-half-edge数据结构中,有edgeshalf-edges

在 OpenMesh 库中不是必需的,edge 通常有一个给出前半边的方法:

Halfedge h = mesh.halfedge(e, 0);  // e - is an edge in mesh; 0 - id of halfedge in edge

对于相反的边缘,我使用:

Halfedge h = mesh.halfedge(e, 1);

这个边缘函数在库中是这样的:

/// returns the \c i'th halfedge of edge \c e. \c i has to be 0 or 1.
Halfedge halfedge(Edge e, unsigned int i) const
{
    assert(i<=1);
    return Halfedge((e.idx() << 1) + i);
}
  • 如果一对中只有一个半边存在,此函数会返回前半边吗?

  • 最后一行伪代码对 boundary 边是否有效 也是?

  • 边界边有多少个半边?

  • 半边数据结构中的边是否有 1 或 2 个半边 边界?

【问题讨论】:

    标签: c++


    【解决方案1】:

    我可以部分回答你的问题:

    就我在 OpenMesh 数据结构中探索的主题而言,所有边都分为 2 个半边,包括网格边界上的边。事实上,边并不存在,从字面上看,只有成对的半边存在。

    因此,我只使用 OpenMesh 库,我不知道使用半边的其他库和数据结构的行为。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-04-30
      • 1970-01-01
      • 2016-05-24
      • 2021-06-21
      相关资源
      最近更新 更多