summaryrefslogtreecommitdiffstats
path: root/ToolAddPolygon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ToolAddPolygon.cpp')
-rw-r--r--ToolAddPolygon.cpp86
1 files changed, 0 insertions, 86 deletions
diff --git a/ToolAddPolygon.cpp b/ToolAddPolygon.cpp
deleted file mode 100644
index 9730318..0000000
--- a/ToolAddPolygon.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-#include "ToolAddPolygon.h"
-#include <GL/gl.h>
-
-
-ToolAddPolygon::ToolAddPolygon(EditManager *editManager) : Renderer(editManager), sidebar(editManager) {
- this->editManager = editManager;
-
- image = gtk_image_new_from_stock(GTK_STOCK_MISSING_IMAGE, GTK_ICON_SIZE_BUTTON);
- g_object_ref_sink(G_OBJECT(image));
-}
-
-ToolAddPolygon::~ToolAddPolygon() {
- g_object_unref(G_OBJECT(image));
-}
-
-void ToolAddPolygon::activate() {
- newRoom = Room();
-
- editManager->setSelectedObject(NULL);
-}
-
-void ToolAddPolygon::deactivate() {
- newRoom.close();
- editManager->addRoom(newRoom);
-}
-
-void ToolAddPolygon::render(const Level &level, const Rectangle &rect, float scale) {
- if(editManager->polygonOk(newRoom.getPolygon()))
- glColor4f(0.0f, 0.7f, 1.0f, 0.2f);
- else
- glColor4f(1.0f, 0.3f, 0.3f, 0.2f);
-
- fillPolygon(newRoom.getPolygon());
-
- glLineWidth(2.0f);
- glColor4f(0.0f, 0.7f, 1.0f, 0.7f);
-
- glBegin(GL_LINES);
-
- for(size_t i = 0; i < newRoom.getEdgeCount(); i++) {
- const Edge *edge = newRoom.getEdge(i);
- glVertex2f(edge->getVertex1()->getX(), edge->getVertex1()->getY());
- glVertex2f(edge->getVertex2()->getX(), edge->getVertex2()->getY());
- }
-
- if(!newRoom.getPolygon().empty() && editManager->getHoveredVertex()) {
- if(!editManager->vertexOk(*editManager->getHoveredVertex(), &newRoom))
- glColor4f(1.0f, 0.3f, 0.3f, 0.7f);
-
- glVertex2f(newRoom.getPolygon().back().getX(), newRoom.getPolygon().back().getY());
- glVertex2f(editManager->getHoveredVertex()->getX(), editManager->getHoveredVertex()->getY());
- }
-
- glEnd();
-}
-
-bool ToolAddPolygon::buttonPress(unsigned int button, const Vertex *v) {
- if(button != 1)
- return false;
-
- if(editManager->getHoveredObject() && editManager->getHoveredObject()->isOfType("LevelVertex")) {
- LevelVertex *vertex = (LevelVertex*)editManager->getHoveredObject();
-
- if(!vertex->canConnect())
- return false;
-
- if(!editManager->vertexOk(**vertex, &newRoom))
- return false;
-
- newRoom.addVertex(*vertex);
- }
- else {
- if(!v)
- return false;
-
- if(!editManager->vertexOk(*v, &newRoom))
- return false;
-
- newRoom.addVertex(*v);
- }
-
- editManager->redraw();
- sidebar.update();
-
- return true;
-}