summaryrefslogtreecommitdiffstats
path: root/Room.h
diff options
context:
space:
mode:
Diffstat (limited to 'Room.h')
-rw-r--r--Room.h23
1 files changed, 5 insertions, 18 deletions
diff --git a/Room.h b/Room.h
index 46d372f..855a00c 100644
--- a/Room.h
+++ b/Room.h
@@ -17,8 +17,6 @@ class Room : public LevelObject, private VertexProvider, private EdgeProvider {
std::vector<Edge> edges;
- void rotateAround(Vertex z, float a);
-
public:
Room() {height = 10;}
Room(std::string name) {this->name = name; height = 10;}
@@ -57,18 +55,7 @@ class Room : public LevelObject, private VertexProvider, private EdgeProvider {
*v += m;
}
- virtual void rotate(float a) {
- rotateAround(getCenter(), a);
- }
-
- virtual Vertex getCenter() const {
- Vertex ret;
-
- for(Polygon::const_iterator v = polygon.begin(); v != polygon.end(); v++)
- ret += *v;
-
- return ret / polygon.size();
- }
+ virtual void rotate(Vertex m, float a);
virtual const Vertex* getVertex(size_t id) const {
return &polygon[id];
@@ -82,8 +69,8 @@ class Room : public LevelObject, private VertexProvider, private EdgeProvider {
polygon[id] += Vertex(x, y);
}
- virtual void rotateVertex(size_t id, float a) {
- rotateAround(polygon[id], a);
+ virtual void rotateVertex(size_t id, Vertex m, float a) {
+ rotate(m, a);
}
virtual const Edge* getEdge(size_t id) const {
@@ -99,8 +86,8 @@ class Room : public LevelObject, private VertexProvider, private EdgeProvider {
moveVertex((id+1)%polygon.size(), x, y);
}
- virtual void rotateEdge(size_t id, float a) {
- rotateAround((polygon[id]+polygon[(id+1)%polygon.size()])/2, a);
+ virtual void rotateEdge(size_t id, Vertex m, float a) {
+ rotate(m, a);
}
};