增加网格细节(附加细分)

时间:2016-12-31 05:06:10

标签: c++ graphics geometry triangulation

我有以下问题(作为另一个问题的解决方案的一部分:))。我有一个三角形网格,标有一些三角形。需要将标记的三角形分成四个较小的三角形,如下所示:

   /\             /\
  /  \           /__\
 /    \   -->   /\  /\
/______\       /__\/__\

标记三角形的分裂导致需要与标记三角形相邻的分裂三角形(一个标记,另一个标记相邻,最后一个保持不变):

    ____               ____
   /\   |\            /\  /|\
  /  \  | \          /__\/ | \
 /    \ |  \  -->   /\  /\ |  \
/______\|___\      /__\/__\|___\

是否有一些可用的C / C ++库?此外,保留邻接数据很有用,因此在拆分后更新相邻数据会很好。如果它提供了一个方便的界面来处理这种数据(三角形,邻接),那就好了,即使这个库不能完成这项工作。

1 个答案:

答案 0 :(得分:-1)

查看VTK C ++库。 它有一个类vtkPolyData,可以处理你提到的操作。要检查的特定成员函数:

  • InsertNextLinkedCell
  • InsertNextLinkedPoint
  • ReplaceLinkedCell

阅读链接文档页面以了解如何使用它。该类可用于任何类型的单元格,而不仅仅是三角形。但您可以将使用限制为仅三角形。