OpenMesh中的裂纹开口/拓扑更改

问题描述

我在OpenMesh中使用了三角形网格(TriMesh),需要进行图片上所示的拓扑更改。这些是在网格的边界处或主体内部的边缘裂纹。据我所知,有几种方法可以实现:

  1. 删除并重新插入一个或两个相邻面。
  2. 使用vertex_split()功能删除添加的多余面孔。
  3. 使用split()函数拆分面或边,然后删除多余的面。

问题是这些方法都没有保留最初存在的面和半边。我需要在面和相邻的半边上都存储属性,因此需要在裂纹时保留它们。有没有一种方法(可能是低级功能)在OpenMesh中做到这一点?理想情况下,应保留面和相邻的半边,并且唯一新引入的半边应为裂纹的边界半边(第一种情况下为2,第二种情况下为4)。

编辑:我认为vertex_split()不会对称地分裂半边。根据{{​​3}},v_1-v0和v_r--v0是两个新的边,我假设有两个新的半边。如果将来自v_1--v1和v_r--v1的半边带带到v_1--v_0和v_r--v0,并且将新的半框插入v_1-v1和v_r--v1,那将更加有用。这样,vertex_split()操作中的其余网格(相邻面及其相邻的半边)将保持不变。

Edit2 :我想真正的问题是如何将由两个半边组成的边分成两个单独的边,每个边都有一个初始半边(每个边再加上一个新创建的半边)。在源代码中,我有关于如何重新连接这些半边的线索,但是必须以某种方式将它们分成两个单独的边。

documentation

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)