如何处理半边结构的具有相同顶点的断开面?

How to handle disconnected faces with same vertex for a half edge structure?

我正在尝试实现半边结构。它看起来像这样:

顶点:

边:

脸型:

现在我注意到一个问题,当网格有两个断开的面共享一个顶点时。例如,在所有边孪生都为空的情况下。在这种情况下,我再也找不到顶点的所有边了。

image of a problem case.

在图像中,中间的顶点仅引用了白色面的边缘。黑脸摸不着。我怎样才能用半边结构使这成为可能?

半边数据结构只允许表示流形表面,因此不允许这种配置....

...但是,如果你添加一个无界面,表面就会变成流形,你可以描述这个配置。这通常是实现 HDS 数据结构的主库中使用的解决方案。

对于这个无界面,每条边都有两条半边(不再有null twin),你需要一种方法来区分属于无界面的半边和其他半边(有时无界半边有一个空面)。

最后一点,如果你有多个连通分量,你将有多个无界面。