summaryrefslogtreecommitdiffstats
path: root/Renderer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Renderer.cpp')
-rw-r--r--Renderer.cpp26
1 files changed, 24 insertions, 2 deletions
diff --git a/Renderer.cpp b/Renderer.cpp
index 42614a7..0a4f403 100644
--- a/Renderer.cpp
+++ b/Renderer.cpp
@@ -93,6 +93,8 @@ void Renderer::drawCross(const Vertex &m, float r) {
void Renderer::renderObject(const LevelObject &object, bool selected, bool highlighted, float scale) {
if(object.isOfType("LevelVertex"))
renderLevelVertex(*(LevelVertex*)&object, selected, highlighted, scale);
+ else if(object.isOfType("LevelEdge"))
+ renderLevelEdge(*(LevelEdge*)&object, selected, highlighted, scale);
else if(object.isOfType("Room"))
renderRoom(*(Room*)&object, selected, highlighted, scale);
else if(object.isOfType("PlayerStart"))
@@ -115,13 +117,33 @@ void Renderer::renderLevelVertex(const LevelVertex &vertex, bool selected, bool
drawCircle(*vertex, 3.5f/scale, 16);
}
+void Renderer::renderLevelEdge(const LevelEdge &edge, bool selected, bool highlighted, float scale) {
+ if(selected) {
+ glColor4f(1.0f, 1.0f, 1.0f, 0.9f);
+ glLineWidth(2.0f);
+ }
+ else if(highlighted) {
+ glColor4f(0.0f, 0.7f, 1.0f, 0.7f);
+ glLineWidth(2.0f);
+ }
+ else
+ return;
+
+ glBegin(GL_LINES);
+
+ glVertex2f(edge->getVertex1()->getX(), edge->getVertex1()->getY());
+ glVertex2f(edge->getVertex2()->getX(), edge->getVertex2()->getY());
+
+ glEnd();
+}
+
void Renderer::renderRoom(const Room &room, bool selected, bool highlighted, float scale) {
if(selected)
glColor4f(0.0f, 0.7f, 1.0f, 0.2f);
else
glColor4f(0.0f, 0.7f, 1.0f, 0.3f);
- fillPolygon(room);
+ fillPolygon(room.getPolygon());
if(selected) {
glColor4f(1.0f, 1.0f, 1.0f, 0.9f);
@@ -136,7 +158,7 @@ void Renderer::renderRoom(const Room &room, bool selected, bool highlighted, flo
glLineWidth(1.0f);
}
- drawPolygon(room);
+ drawPolygon(room.getPolygon());
}
void Renderer::renderPlayerStart(const PlayerStart &start, bool selected, bool highlighted, float scale) {