我计划将CGAL Triangulation和Delaunay Triangulation类用作机器人运动规划算法的骨干几何结构。到目前为止,我遇到的主要困难是将额外的几何数据分配给抽象复合体中的完整单元格。例如,为了找到通过完整单元格的最短路径,我需要计算一组到所有方面的法向量。为此,我使用昂贵的伪逆过程。因为,这些计算必须在每个完整单元格中进行多次,所以我更喜欢在计算后存储这些数据,并在连续计算期间检索它。另外,我想存储每个完整单元格的碰撞数据,而不是在精炼给定三角剖分后重新计算它。
在这里浏览一些答案并试图理解CGAL的结构,我对这个主题有了一些了解:
Triangulation_cell_base_with_info
似乎是一种简单的解决方法,但我认为它是一种不优雅的黑客攻击,因为它要求我实现一个包装类来保存其他数据并将此类传递给规划算法。Triangulation_ds_cell_base
派生一个单元格类。这看起来是最可接受的做事方式,但我找不到一个很好的代码示例来帮助我开始。我不仅需要类派生,还需要有关如何在各种场景中访问单元数据的示例代码:通过迭代器,顶点邻接等。 所以,这是我的两个问题:
编辑:我忘了提到我需要使用CGAL 4.6中引入的dD三角测量