summaryrefslogtreecommitdiffstats
path: root/Room.h
diff options
context:
space:
mode:
Diffstat (limited to 'Room.h')
-rw-r--r--Room.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/Room.h b/Room.h
index 8e72c61..1cac5d9 100644
--- a/Room.h
+++ b/Room.h
@@ -35,6 +35,27 @@ class Room : public Polygon, public LevelObject {
v->setY(v->getY()+y);
}
}
+
+ 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_*/