37 #include "util/base/fifeclass.h"
38 #include "util/structures/rect.h"
39 #include "model/metamodel/modelcoords.h"
40 #include "model/metamodel/object.h"
60 CELL_EDGES_AND_DIAGONALS,
100 Layer(
const std::string& identifier,
Map* map, CellGrid* grid);
108 const std::string&
getId()
const {
return m_id; }
112 void setId(
const std::string&
id) { m_id = id; }
156 const std::vector<Instance*>&
getInstances()
const {
return m_instances; }
160 std::vector<Instance*>
getInstances(
const std::string&
id);
166 std::vector<Instance*>
getInstancesAt(Location& loc,
bool use_exactcoordinates=
false);
248 void setInstanceActivityStatus(
Instance* instance,
bool active);
255 bool m_instances_visibility;
257 uint8_t m_transparency;
260 std::vector<Instance*> m_instances;
263 std::set<Instance*> m_active_instances;
266 InstanceTree* m_instanceTree;
275 std::vector<LayerChangeListener*> m_changelisteners;
278 std::vector<Instance*> m_changedinstances;
void setInstancesVisible(bool vis)
std::vector< Instance * > getInstancesAt(Location &loc, bool use_exactcoordinates=false)
const std::string & getId() const
void setId(const std::string &id)
void toggleInstancesVisible()
bool hasInstances() const
std::list< Instance * > getInstancesIn(Rect &rec)
const std::vector< Instance * > & getInstances() const
Instance * createInstance(Object *object, const ModelCoordinate &p, const std::string &id="")
Layer(const std::string &identifier, Map *map, CellGrid *grid)
bool areInstancesVisible() const
virtual void onInstanceDelete(Layer *layer, Instance *instance)=0
std::vector< Instance * > & getChangedInstances()
void setCellGrid(CellGrid *grid)
void setPathingStrategy(PathingStrategy strategy)
void getMinMaxCoordinates(ModelCoordinate &min, ModelCoordinate &max, const Layer *layer=0) const
void removeChangeListener(LayerChangeListener *listener)
virtual void onLayerChanged(Layer *layer, std::vector< Instance * > &changedInstances)=0
bool addInstance(Instance *instance, const ExactModelCoordinate &p)
CellGrid * getCellGrid() const
Instance * getInstance(const std::string &identifier)
void addChangeListener(LayerChangeListener *listener)
void deleteInstance(Instance *object)
void setLayerTransparency(uint8_t transparency)
PathingStrategy getPathingStrategy() const
InstanceTree * getInstanceTree(void) const
bool cellContainsBlockingInstance(const ModelCoordinate &cellCoordinate)
virtual void onInstanceCreate(Layer *layer, Instance *instance)=0
uint8_t getLayerTransparency()