Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #pragma once
- #ifndef QUADTREE_H
- #define QUADTREE_H
- template <class Object>
- class Quadtree
- {
- public:
- Quadtree(sf::Vector2f startingPoint = sf::Vector2f(0,0), float width = 800, float height = 600, Quadtree<Object>* parent = nullptr);
- void insertObject(Object* object);
- void removeObject(Object* object);
- int getLocalObjectCount();
- void getTotalObjectCount(int& count);
- void draw(sf::RenderTarget& target);
- void manage();
- bool isMarkedForRemoval();
- private:
- void subdivide();
- bool intersects(Object* object);
- int getObjIndex(Object* object);
- void updateAll();
- void removeWrecks();
- void getOldestParent(Quadtree*& parent);
- private:
- Object* node = nullptr;
- Quadtree* mParent;
- std::vector<Quadtree*> mChildren;
- std::vector<Object*> mObjects;
- const static int MAX_OBJECTS = 3;
- sf::RectangleShape mDebugRect;
- sf::FloatRect mAABB;
- };
- #include "Qtree.inl"
- #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement