Самый простой способ — удалить и вставить объект, но, вероятно, есть и более быстрые методы. (Если я слишком много думаю об этом, и я должен просто сделать это простым способом, дайте мне знать)
Вот несколько заметок о моем QuadTree
- Перемещаемые объекты являются AABB и могут быть больше, чем наименьший узел QuadTree.
- Объекты не удаляются при создании дочерних QuadTrees. Это означает, что корень QuadTree имеет указатель на каждый объект внутри QuadTree.
- Объекты хранятся как указатели в векторе за пределами QuadTree.
Пока что каждый раз, когда объект перемещается, он вызывает функцию Update() в корневом дереве QuadTree. Он включает себя и свою прошлую ограничивающую рамку до того, как она была перемещена в параметры. Я не уверен, как сделать функцию, хотя.
Размещение всего кода в моем QuadTree здесь сделало бы мой пост довольно длинным, поэтому я создал репозиторий GitHub для облегчения чтения.
Изменить: для тех, кто ищет ответ, это, кажется, обновляет объекты, удаляя и удаляя их, и судя по тест, который он сделал в комментариях.