#pragma once #include #include #include "Artist.h" #include "Rectangle.h" class QuadTree { public: QuadTree(Museum &); QuadTree(const QuadTree *, const Rectangle & boundary); const Rectangle & get_boundary() { return this->boundary; } std::unique_ptr subtree[4] = { nullptr, nullptr, nullptr, nullptr, }; private: const int capacity = 2; std::forward_list artists; size_t artists_size = 0; Rectangle boundary; void subdivide(); void cull(); };