#include "Room.h" #include "LevelEdge.h" const Room& Room::operator=(const Room &room) { vertices.clear(); edges.clear(); name = room.name; height = room.height; vertices = room.vertices; for(std::vector::const_iterator edge = room.edges.begin(); edge != room.edges.end(); edge++) { LevelVertex v1(this, edge->getVertex1().getId(), this); LevelVertex v2(this, edge->getVertex2().getId(), this); edges.push_back(Edge(v1, v2)); } return room; } std::vector > Room::getChildren() { std::vector > children; for(size_t i = 0; i < vertices.size(); i++) children.push_back(SharedPtr(new LevelVertex(this, i, this))); for(size_t i = 0; i < edges.size(); i++) children.push_back(SharedPtr(new LevelEdge(this, i, this))); return children; } void Room::rotate(Vertex m, float a) { float s = sinf(a); float c = cosf(a); for(std::vector >::iterator v = vertices.begin(); v != vertices.end(); v++) { **v -= m; (*v)->setLocation(c*(**v)->getX() - s*(**v)->getY(), c*(**v)->getY() + s*(**v)->getX()); **v += m; } }