QuadtreeOccupant.h 708 B

123456789101112131415161718192021222324252627282930313233
  1. #pragma once
  2. #include <SFML/System.hpp>
  3. #include <SFML/Graphics.hpp>
  4. #include "../tools/Math.h"
  5. #include <memory>
  6. #include <array>
  7. #include <unordered_set>
  8. namespace ltbl {
  9. class QuadtreeOccupant {
  10. friend class Quadtree;
  11. friend class QuadtreeNode;
  12. friend class DynamicQuadtree;
  13. friend class StaticQuadtree;
  14. private:
  15. class QuadtreeNode* _pQuadtreeNode;
  16. class Quadtree* _pQuadtree;
  17. public:
  18. QuadtreeOccupant()
  19. : _pQuadtreeNode(nullptr), _pQuadtree(nullptr)
  20. {}
  21. void quadtreeUpdate();
  22. void quadtreeRemove();
  23. virtual sf::FloatRect getAABB() const = 0;
  24. };
  25. }