#ifndef RENDERER_H_ #define RENDERER_H_ #include "Rectangle.h" #include "Polygon.h" #include "EditManager.h" #include "Level.h" #include "Room.h" #include "PlayerStart.h" class Renderer { private: EditManager *editManager; void drawGrid(const Rectangle &rect, float scale); protected: void fillPolygon(const Polygon &polygon); void drawPolygon(const Polygon &polygon, bool close = true); void drawCircle(const Vertex &m, float r, int n); void drawCross(const Vertex &m, float r); void renderObject(const LevelObject &object, bool selected, bool hovered, float scale); void renderRoom(const Room &room, bool selected, bool hovered, float scale); void renderPlayerStart(const PlayerStart &start, bool selected, bool hovered, float scale); public: Renderer(EditManager *editManager) { this->editManager = editManager; } virtual ~Renderer() {} virtual void render(const Level &level, const Rectangle &rect, float scale); }; #endif /*RENDERER_H_*/