|
Particle Game Maker Engine
1.0.0
Enables the user to create their own particle game using a simple and coherent api in the PongChamp scripting language
|
A class to represent QuadTree. More...
#include <QuadTree.h>
Public Member Functions | |
| QuadTree (Point topL, Point botR) | |
| Construct a quadtree of bounds topL and botR. More... | |
| void | remove (Node *n) |
| void | insert (Node *) |
| bool | inBoundary (Point) |
| Check if current quadtree contains the point. More... | |
| void | shrink () |
Public Attributes | |
| Point | topLeft |
| Point | botRight |
| Node * | nodes [QUAD_MAX] = {nullptr, nullptr, nullptr, nullptr} |
| The particles of this Quadtree. More... | |
| int | size = 0 |
| The number of particles in this QuadTree including children. More... | |
| int | nextFreeNode = 0 |
| bool | treeHolder = false |
| A bool stating whether this tree is a parent of other nodes. More... | |
| QuadTree * | parent |
| Pointer to parent of this tree. More... | |
| QuadTree * | topLeftTree |
| Top left child. More... | |
| QuadTree * | topRightTree |
| Top right child. More... | |
| QuadTree * | botLeftTree |
| bottom left child More... | |
| QuadTree * | botRightTree |
| bottom right child More... | |
A class to represent QuadTree.
| bool QuadTree::inBoundary | ( | Point | p | ) |
Check if current quadtree contains the point.
| void QuadTree::insert | ( | Node * | node | ) |
INSERT Check if TreeHolder (in remove if this shouldn't be a tree holder anymore make it not) if Treeholder just go subtrees Check if space open in this tree yes-> put this node in here bro && add 1 to ur parent no-> make yourself a tree holder size is the sum of its children sizes
| void QuadTree::remove | ( | Node * | n | ) |
ONLY CALLED FROM NON-TREE Holders look for node to remove make sure list is adjacent remove the given point from the quadtree if it exists
| void QuadTree::shrink | ( | ) |
SHRINK shrink the tree starting from this quadtree, shrinks subtrees and then if this tree size is 4 then it can assume its subtrees are not treeholders. INVARIANT: after a tree is shrunk, size < QUAD_MAX => !treeholder
| QuadTree* QuadTree::botLeftTree |
bottom left child
| Point QuadTree::botRight |
| QuadTree* QuadTree::botRightTree |
bottom right child
| int QuadTree::nextFreeNode = 0 |
| Node* QuadTree::nodes[QUAD_MAX] = {nullptr, nullptr, nullptr, nullptr} |
The particles of this Quadtree.
| QuadTree* QuadTree::parent |
Pointer to parent of this tree.
| int QuadTree::size = 0 |
The number of particles in this QuadTree including children.
| Point QuadTree::topLeft |
| QuadTree* QuadTree::topLeftTree |
Top left child.
| QuadTree* QuadTree::topRightTree |
Top right child.
| bool QuadTree::treeHolder = false |
A bool stating whether this tree is a parent of other nodes.
1.4.1