我目前正试图实现一种半边折叠算法,以执行增量重建。我正在处理一个流形网格。请考虑以下简单的网格:
目标是将a折叠成b。
但在这种情况下,会导致非流形网格
我希望避免这种情况。我的问题是:
在折叠之前如何做到这一点,即在折叠之前进行检查以确定折叠操作是否安全?
我已经尝试了Hoppe的标准(链条件),但似乎两者都得到了满足。此外,a和b的1环的唯一相交点是c,因此只有一个点,因为它是边界边缘。
总的来说,我还需要执行哪些检查以避免非法折叠?
现在,我有以下标准:
- 如果a和b都是边界顶点,则边ab必须是边界边缘
- a、b和相邻于边ab的三角形的第三个顶点必须是有效的三角形(链条件)
- 如果与边ab相邻的三角形是边界三角形,则如果a在边界边上,则不要折叠
- 如果a-1环和b-1环的交集不等于二(或对于边界边缘为一),则不要折叠