3#include "Foundation/Geometry/Glm.hpp"
21 std::array<std::unique_ptr<QuadNode>, 4> mChildren;
24 glm::vec2 mNearestArrow;
34 std::unique_ptr<QuadNode> mRoot;
40 int getSubQuad(
const QuadBounds & bounds,
const glm::vec2 & arrow)
const;
50 mRoot = std::make_unique<QuadNode>();
51 mRoot->mBounds = { min, max };
54 inline QuadNode* getRoot()
const {
return mRoot.get(); }
55 inline bool isLeaf(
const QuadNode* node) {
return !
static_cast<bool>(node->mChildren[0]); }
58 void insert(
QuadNode * node,
size_t depth,
const glm::vec2 & arrow);
61 int search(
QuadNode * node,
const glm::vec2 & arrow,
int priority)
const;
Contains all Cogs related functionality.