0

我需要实现一个碰撞检测算法。我需要得到所有基元对(即点-面对和边-边对),其中两个基元在给定距离内。

对于大型网格,我选择 CGAL::Surface_mesh 作为我的基本网格数据结构,并决定使用 AABB 树以提高效率。AABB 树手册页提供了几种用法:

  1. 交叉点:关于精确的交叉点

    • 交叉点测试:do_intersect(), number_of_intersected_primitives(), all_intersected_primitives(), any_intersected_primitive(),精确的交叉点检查

    • 交集构造:all_intersections(), any_intersection(),都返回具有给定原语的交集对象

  2. 距离:

    • closet_point(), closet_point_and_primitive(). 我可能需要这样的东西。

所以我想我可以自己定制这个。我注意到Square_distance()Compare_distance()用作距离函数,我可以像这样重载这些函数吗

bool Compare_distance()
{
    float distance = /* ... */;
    float final_distance = distance - threshold;
    // ...
}

有人能帮我吗?

4

0 回答 0