47 lines
1.5 KiB
C++
47 lines
1.5 KiB
C++
#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_*/
|