From 80b4f14530426d21c7ea26b7976a728f5b36c294 Mon Sep 17 00:00:00 2001 From: neoraider Date: Fri, 15 Feb 2008 11:01:04 +0000 Subject: Added edges to rooms. --- EditManager.cpp | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) (limited to 'EditManager.cpp') diff --git a/EditManager.cpp b/EditManager.cpp index 9ca3dfb..2697612 100644 --- a/EditManager.cpp +++ b/EditManager.cpp @@ -5,21 +5,21 @@ bool EditManager::lineOk(const Room &newRoom, const Line &l) const { Line l2; - for(size_t i = 0; i+2 < newRoom.size(); i++) { - l2.setVertex1(newRoom.at(i)); - l2.setVertex2(newRoom.at(i+1)); + for(size_t i = 0; i+2 < newRoom.getPolygon().size(); i++) { + l2.setVertex1(newRoom.getPolygon()[i]); + l2.setVertex2(newRoom.getPolygon()[i+1]); if(l.intersects(l2, NULL) == INTERSECTION_SEGMENT_SEGMENT) return false; } - if(newRoom.size() > 1) { - l2.setVertex1(newRoom.at(newRoom.size()-2)); - l2.setVertex2(newRoom.back()); + if(newRoom.getPolygon().size() > 1) { + l2.setVertex1(newRoom.getPolygon()[newRoom.getPolygon().size()-2]); + l2.setVertex2(newRoom.getPolygon().back()); if(l2.contains(l.getVertex2())) return false; } for(Level::iterator room = window->getLevel().begin(); room != window->getLevel().end(); room++) { - if((*room)->isOfType("Room") && ((Room*)&**room)->intersects(l)) + if((*room)->isOfType("Room") && ((Room*)&**room)->getPolygon().intersects(l)) return false; } @@ -42,7 +42,7 @@ void EditManager::redraw() { } bool EditManager::addRoom(const Room &newRoom) { - if(newRoom.size() > 2 && polygonOk(newRoom)) { + if(newRoom.getPolygon().size() > 2 && polygonOk(newRoom.getPolygon())) { Room *room = new Room(newRoom); room->setName(idManager.generate("room")); @@ -90,16 +90,16 @@ 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((*room)->isOfType("Room") && ((Room*)&**room)->getPolygon().contains(v)) return false; } if(!newRoom) return true; - if(newRoom->empty()) + if(newRoom->getPolygon().empty()) return true; - l.setVertex1(newRoom->back()); + l.setVertex1(newRoom->getPolygon().back()); l.setVertex2(v); return lineOk(*newRoom, l); @@ -116,12 +116,12 @@ bool EditManager::polygonOk(const Polygon& polygon) const { Room *room = (Room*)&**object; - if(room->empty()) continue; + if(room->getPolygon().empty()) continue; - if(room->contains(polygon.front())) + if(room->getPolygon().contains(polygon.front())) return false; - if(polygon.contains(room->front())) + if(polygon.contains(room->getPolygon().front())) return false; } @@ -139,7 +139,7 @@ bool EditManager::polygonOk(const Polygon& polygon) const { l.setVertex2(*it2); for(Level::iterator room = window->getLevel().begin(); room != window->getLevel().end(); room++) { - if((*room)->isOfType("Room") && ((Room*)&**room)->intersects(l)) + if((*room)->isOfType("Room") && ((Room*)&**room)->getPolygon().intersects(l)) return false; } } -- cgit v1.2.3