From 052641637bd20ffde6ddb8919888e2af987bafff Mon Sep 17 00:00:00 2001 From: neoraider Date: Tue, 25 Dec 2007 03:27:03 +0000 Subject: zoomedit: Added rectangular room tool. --- EditManager.cpp | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'EditManager.cpp') diff --git a/EditManager.cpp b/EditManager.cpp index 2d743f5..9c44a27 100644 --- a/EditManager.cpp +++ b/EditManager.cpp @@ -46,7 +46,9 @@ bool EditManager::addRoom(const Room &newRoom) { room->setName(idManager.generate("room")); window->getLevel().push_back(SharedPtr(room)); - selectedObject = &*window->getLevel().back(); + selectedObject = room; + + window->resetTool(); return true; } @@ -83,20 +85,23 @@ void EditManager::setHoveredVertex(Vertex *v) { window->update(); } -bool EditManager::vertexOk(const Room &newRoom, const Vertex &v) const { +bool EditManager::vertexOk(const Vertex &v, const Room *newRoom) const { Line l; for(Level::iterator room = window->getLevel().begin(); room != window->getLevel().end(); room++) { if((*room)->isOfType("Room") && ((Room*)&**room)->contains(v)) return false; } - if(newRoom.empty()) + if(!newRoom) + return true; + + if(newRoom->empty()) return true; - l.setVertex1(newRoom.back()); + l.setVertex1(newRoom->back()); l.setVertex2(v); - return lineOk(newRoom, l); + return lineOk(*newRoom, l); } bool EditManager::polygonOk(const Polygon& polygon) const { -- cgit v1.2.3