小编epi*_*que的帖子

在 C++ 中移动对象后如何更新四叉树?

最简单的方法是删除和插入对象,但可能还有更快的方法。(如果我想太多了,我应该用简单的方法来做,请告诉我)

这是关于我的四叉树的一些注释

  • 正在移动的对象是 AABB,并且可能比最小的四叉树节点还要大。
  • 创建子四叉树时,不会删除对象。这意味着根四叉树有一个指向四叉树内每个对象的指针。
  • 这些对象作为指针存储在四叉树外部的向量中。

到目前为止,每次对象移动时,它都会调用根四叉树上名为 Update() 的函数。它包含其自身以及在移入参数之前的过去的边界框。但我不确定如何实现该功能。

将整个代码发布到我的 QuadTree 会使我的帖子变得很长,因此我创建了一个GitHub 存储库以便于阅读。

编辑:对于任何寻找答案的人来说,这似乎是通过删除和删除对象来更新对象,并且从他在评论中所做的测试来看,这是相当有效的。

c++ recursion quadtree recursive-datastructures data-structures

6
推荐指数
2
解决办法
5344
查看次数