2007-10-04 23:38:05 +00:00
|
|
|
#ifndef EDITMANAGER_H_
|
|
|
|
#define EDITMANAGER_H_
|
|
|
|
|
2007-12-14 02:47:03 +00:00
|
|
|
#include "SharedPtr.h"
|
2007-10-04 23:38:05 +00:00
|
|
|
#include "Room.h"
|
2007-10-18 19:18:01 +00:00
|
|
|
#include "IdManager.h"
|
2007-10-04 23:38:05 +00:00
|
|
|
|
|
|
|
|
|
|
|
class Window;
|
|
|
|
|
|
|
|
|
|
|
|
class EditManager {
|
|
|
|
private:
|
2007-10-18 19:18:01 +00:00
|
|
|
IdManager idManager;
|
|
|
|
|
2007-10-04 23:38:05 +00:00
|
|
|
Window *window;
|
|
|
|
|
2007-12-14 02:47:03 +00:00
|
|
|
LevelObject *hoveredObject;
|
2008-01-16 16:11:00 +00:00
|
|
|
LevelObject *highlightedObject;
|
2007-12-24 00:04:02 +00:00
|
|
|
LevelObject *selectedObject;
|
2007-10-18 19:18:01 +00:00
|
|
|
|
|
|
|
Vertex hoveredVertex;
|
|
|
|
bool hasHoveredVertex;
|
|
|
|
|
2007-12-24 00:04:02 +00:00
|
|
|
bool lineOk(const Room &newRoom, const Line &l) const;
|
2007-10-04 23:38:05 +00:00
|
|
|
|
|
|
|
public:
|
|
|
|
EditManager(Window *window);
|
|
|
|
|
2007-12-14 18:22:04 +00:00
|
|
|
void redraw();
|
2007-12-14 02:47:03 +00:00
|
|
|
|
2007-12-24 00:04:02 +00:00
|
|
|
LevelObject* getHoveredObject() {
|
|
|
|
return hoveredObject;
|
|
|
|
}
|
2007-10-04 23:38:05 +00:00
|
|
|
|
2008-01-16 16:11:00 +00:00
|
|
|
void setHighlightedObject(LevelObject *object) {
|
|
|
|
highlightedObject = object;
|
|
|
|
}
|
|
|
|
|
|
|
|
LevelObject* getHighlightedObject() {
|
|
|
|
return highlightedObject;
|
|
|
|
}
|
|
|
|
|
|
|
|
void highlightHoveredObject() {
|
|
|
|
highlightedObject = hoveredObject;
|
|
|
|
}
|
|
|
|
|
2007-12-24 00:04:02 +00:00
|
|
|
void setSelectedObject(LevelObject *object) {
|
|
|
|
selectedObject = object;
|
2007-10-04 23:38:05 +00:00
|
|
|
}
|
2007-10-18 19:18:01 +00:00
|
|
|
|
2007-12-14 02:47:03 +00:00
|
|
|
LevelObject* getSelectedObject() {
|
|
|
|
return selectedObject;
|
2007-10-18 19:18:01 +00:00
|
|
|
}
|
|
|
|
|
2007-12-24 00:04:02 +00:00
|
|
|
bool addRoom(const Room &room);
|
2007-10-18 19:18:01 +00:00
|
|
|
|
2008-01-16 16:11:00 +00:00
|
|
|
const Vertex* getHoveredVertex() const;
|
|
|
|
void setHoveredVertex(const Vertex *v);
|
2007-10-18 19:18:01 +00:00
|
|
|
|
2007-12-25 03:27:03 +00:00
|
|
|
bool vertexOk(const Vertex &v, const Room *newRoom = NULL) const;
|
2007-12-24 00:04:02 +00:00
|
|
|
bool polygonOk(const Polygon &polygon) const;
|
2007-10-04 23:38:05 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif /*EDITMANAGER_H_*/
|