summaryrefslogtreecommitdiffstats
path: root/Room.h
diff options
context:
space:
mode:
authorneoraider <devnull@localhost>2008-02-08 22:21:01 +0100
committerneoraider <devnull@localhost>2008-02-08 22:21:01 +0100
commitacb1721e94a49a4941bb11dfc2f832c3848aa204 (patch)
tree6398053a11b46242974ae171d700418bd42c92b8 /Room.h
parenta39525ca36e2c002332f914907f74061533c2b04 (diff)
downloadzoomedit-acb1721e94a49a4941bb11dfc2f832c3848aa204.tar
zoomedit-acb1721e94a49a4941bb11dfc2f832c3848aa204.zip
zoomedit: Implemented Rotate tool; added simple gates.
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_*/