#ifndef RENDERER_H_ #define RENDERER_H_ #include "Rectangle.h" #include "Polygon.h" #include "EditManager.h" #include "Level.h" #include "Room.h" #include "PlayerStart.h" #include "Portal.h" #include "LevelEdge.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 fillCircle(const Vertex &m, float r, int n = 64); void drawCircle(const Vertex &m, float r, int n = 64); void drawCircleDotted(const Vertex &m, float r, int n = 64, int d = 8, float rot = 0); void drawCross(const Vertex &m, float r); void renderObject(const LevelObject &object, bool selected, bool hovered, float scale); void renderLevelVertex(const LevelVertex &vertex, bool selected, bool hovered, float scale); void renderLevelEdge(const LevelEdge &edge, 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); void renderPortal(const Portal &portal, 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_*/