QuadTree-Cpp
QuadTree-Cpp copied to clipboard
Simple QuadTree written in C++ with SFML demo
QuadTree-Cpp
Simple QuadTree written in C++ with SFML demo
Constructing a quadtree
QuadTree *quadTree = new QuadTree({ x, y, width, height }, 8, 4);
Inserting objects
// Inserts an object into the quadtree
int data = 5;
Collidable obj = Collidable({ x, y, width, height }, data);
quadTree->insert(&obj);
Removing objects
// Removes an object from the quadtree
quadTree->remove(&obj);
Updating objects
// Updates an object within the quadtree
// Useful for objects that move
obj.bound.x = 123.456;
obj.bound.y = 654.321;
quadTree->update(&obj);
Searching for objects within boundary
// Getting objects within a particular boundary
Rect box = { x, y, width, height };
std::vector<Collidable*> foundObjects = quadTree->getObjectsInBound(box);
Getting objects & children count
std::cout << quadTree->totalChildren() << "\n";
std::cout << quadTree->totalObjects() << "\n";
Clearing a quadtree
quadTree->clear();
Getting data from a Collidable
int stuff = 123;
Collidable obj = Collidable({ 0, 0, 10, 20}, stuff);
std::cout << std::any_cast<int>(obj.data) << '\n';