Advertisement
Guest User

Quadtree.h

a guest
Apr 25th, 2014
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #pragma once
  2. #ifndef QUADTREE_H
  3. #define QUADTREE_H
  4.  
  5.  
  6.  
  7. template <class Object>
  8. class Quadtree
  9. {
  10. public:
  11.     Quadtree(sf::Vector2f startingPoint = sf::Vector2f(0,0), float width = 800, float height = 600, Quadtree<Object>* parent = nullptr);
  12.    
  13.     void insertObject(Object* object);
  14.     void removeObject(Object* object);
  15.  
  16.     int  getLocalObjectCount();
  17.     void getTotalObjectCount(int& count);
  18.  
  19.     void draw(sf::RenderTarget& target);
  20.  
  21.     void manage();
  22.  
  23.     bool isMarkedForRemoval();
  24.  
  25.  
  26. private:
  27.  
  28.     void    subdivide();
  29.     bool    intersects(Object* object);
  30.     int     getObjIndex(Object* object);
  31.  
  32.     void    updateAll();
  33.  
  34.     void removeWrecks();
  35.  
  36.     void getOldestParent(Quadtree*& parent);
  37.  
  38. private:
  39.     Object* node = nullptr;
  40.     Quadtree* mParent;
  41.     std::vector<Quadtree*> mChildren;
  42.     std::vector<Object*> mObjects;
  43.  
  44.    
  45.  
  46.     const static int MAX_OBJECTS = 3;
  47.  
  48.     sf::RectangleShape mDebugRect;
  49.     sf::FloatRect mAABB;
  50.  
  51. };
  52.  
  53. #include "Qtree.inl"
  54.  
  55. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement