#pragma once #include #include "Color.h" #include "Command.h" #include "KeyboardCode.h" #include "MouseCode.h" #include "Rectangle.h" #include "XY.h" class View; class Museum; class QuadTreeCollisionChecker; class ViewController { public: ViewController(Museum & m, View & v); virtual ~ViewController(); public: void update(); void ev_keydown(KeyboardCode code); void ev_mousedown(MouseCode code); void ev_mousemove(unsigned x, unsigned y); private: void update_size(); void update_tiles(); void update_artists(); void update_pathfinding(); void update_quadtree(); void update_quadtree_recursive(QuadTreeCollisionChecker * tree); private: void draw_pathfinding_dot(const XY &, const Color &); Rectangle center(Rectangle); private: Museum & museum; View & view; const Command * cmd_base = nullptr; private: bool draw_artists = true; bool draw_quadtree = true; bool draw_path = true; bool draw_visited = true; private: float scale = 16; float artist_size = scale / 2; float pathfinding_size = artist_size; private: XY mouse_pos; };