diff options
Diffstat (limited to 'EditManager.cpp')
-rw-r--r-- | EditManager.cpp | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/EditManager.cpp b/EditManager.cpp new file mode 100644 index 0000000..34d53be --- /dev/null +++ b/EditManager.cpp @@ -0,0 +1,40 @@ +#include "EditManager.h" +#include "Window.h" +#include "edit.h" + + +EditManager::EditManager(Window *window) { + this->window = window; + + mode = VIEW; +} + +void EditManager::addRoom() { + //newRoom = Room(); + mode = ADD; + + startAddMode(); + + window->update(); +} + +void EditManager::finishRoom() { + mode = VIEW; + + if(getActiveRoom() && getActiveRoom()->size() > 2 && isPolygonOk(getActiveRoom())) { + getLevel()->push_back(*getActiveRoom()); + setActiveRoom(&getLevel()->back()); + + endAddMode(); + } + + window->update(); +} + +void EditManager::addVertex(const Vertex &v) { + if(mode != ADD || !getActiveRoom()) + return; + + getActiveRoom()->push_back(v); + window->update(); +} |