#ifndef ROOM_H_ #define ROOM_H_ #include "Polygon.h" #include "LevelObject.h" #include class Room : public Polygon, public LevelObject { private: std::string name; float height; public: Room() {height = 10;} Room(std::string name) {this->name = name; height = 10;} std::string &getName() {return name;} const std::string &getName() const {return name;} void setName(const std::string &name) {this->name = name;} float getHeight() const {return height;} void setHeight(float height) {this->height = height;} virtual bool hit(const Vertex &v) const {return contains(v);} virtual int getPriority() const {return 0;} virtual const char* getType() const { return "Room"; } virtual void move(float x, float y) { Vertex m(x, y); for(iterator v = begin(); v != end(); v++) *v += m; } virtual void rotate(float a) { Vertex z = getCenter(); float s = sinf(a); float c = cosf(a); for(iterator v = begin(); v != end(); v++) { *v -= z; v->setLocation(c*v->getX() - s*v->getY(), c*v->getY() + s*v->getX()); *v += z; } } virtual Vertex getCenter() const { Vertex ret; for(const_iterator v = begin(); v != end(); v++) ret += *v; return ret / size(); } }; #endif /*ROOM_H_*/