如何处理半边结构的具有相同顶点的断开面?
How to handle disconnected faces with same vertex for a half edge structure?
我正在尝试实现半边结构。它看起来像这样:
顶点:
边缘
位置
边:
顶点
脸
前边
下一条边
双刃
脸型:
- 边缘
现在我注意到一个问题,当网格有两个断开的面共享一个顶点时。例如,在所有边孪生都为空的情况下。在这种情况下,我再也找不到顶点的所有边了。
image of a problem case.
在图像中,中间的顶点仅引用了白色面的边缘。黑脸摸不着。我怎样才能用半边结构使这成为可能?
半边数据结构只允许表示流形表面,因此不允许这种配置....
...但是,如果你添加一个无界面,表面就会变成流形,你可以描述这个配置。这通常是实现 HDS 数据结构的主库中使用的解决方案。
对于这个无界面,每条边都有两条半边(不再有null twin),你需要一种方法来区分属于无界面的半边和其他半边(有时无界半边有一个空面)。
最后一点,如果你有多个连通分量,你将有多个无界面。
我正在尝试实现半边结构。它看起来像这样:
顶点:
边缘
位置
边:
顶点
脸
前边
下一条边
双刃
脸型:
- 边缘
现在我注意到一个问题,当网格有两个断开的面共享一个顶点时。例如,在所有边孪生都为空的情况下。在这种情况下,我再也找不到顶点的所有边了。
image of a problem case.
在图像中,中间的顶点仅引用了白色面的边缘。黑脸摸不着。我怎样才能用半边结构使这成为可能?
半边数据结构只允许表示流形表面,因此不允许这种配置....
...但是,如果你添加一个无界面,表面就会变成流形,你可以描述这个配置。这通常是实现 HDS 数据结构的主库中使用的解决方案。
对于这个无界面,每条边都有两条半边(不再有null twin),你需要一种方法来区分属于无界面的半边和其他半边(有时无界半边有一个空面)。
最后一点,如果你有多个连通分量,你将有多个无界面。