diff options
author | neoraider <devnull@localhost> | 2008-02-08 22:21:01 +0100 |
---|---|---|
committer | neoraider <devnull@localhost> | 2008-02-08 22:21:01 +0100 |
commit | acb1721e94a49a4941bb11dfc2f832c3848aa204 (patch) | |
tree | 6398053a11b46242974ae171d700418bd42c92b8 /Room.h | |
parent | a39525ca36e2c002332f914907f74061533c2b04 (diff) | |
download | zoomedit-acb1721e94a49a4941bb11dfc2f832c3848aa204.tar zoomedit-acb1721e94a49a4941bb11dfc2f832c3848aa204.zip |
zoomedit: Implemented Rotate tool; added simple gates.
Diffstat (limited to 'Room.h')
-rw-r--r-- | Room.h | 21 |
1 files changed, 21 insertions, 0 deletions
@@ -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_*/ |