22 #ifndef FIFE_MAP_MAP_H
23 #define FIFE_MAP_MAP_H
36 #include "util/base/fifeclass.h"
37 #include "util/resource/resource.h"
38 #include "model/metamodel/timeprovider.h"
39 #include "util/structures/rect.h"
65 virtual void onMapChanged(
Map* map, std::vector<Layer*>& changedLayers) = 0;
94 const std::vector<RendererBase*>& renderers,
TimeProvider* tp_master=NULL);
102 const std::string&
getId()
const {
return m_id; }
106 void setId(
const std::string&
id) { m_id = id; }
118 const std::list<Layer*>&
getLayers()
const {
return m_layers; }
135 const Layer* to_layer, std::vector<ModelCoordinate>& matching_coords)
const;
193 const std::vector<Camera*>&
getCameras()
const;
195 void setFilename(
const std::string& file) { m_filename = file; }
196 const std::string& getFilename()
const {
return m_filename; }
200 std::string m_filename;
202 std::list<Layer*> m_layers;
203 TimeProvider m_timeprovider;
206 Map& operator=(
const Map& map);
209 std::vector<MapChangeListener*> m_changelisteners;
212 std::vector<Layer*> m_changedlayers;
215 std::vector<Camera*> m_cameras;
217 RenderBackend* m_renderbackend;
220 std::vector<RendererBase*> m_renderers;
void setMultiplier(float multiplier)
void setId(const std::string &id)
Layer * getLayer(const std::string &identifier)
Camera * addCamera(const std::string &id, Layer *layer, const Rect &viewport)
void removeChangeListener(MapChangeListener *listener)
void addChangeListener(MapChangeListener *listener)
virtual void onMapChanged(Map *map, std::vector< Layer * > &changedLayers)=0
Camera * getCamera(const std::string &id)
uint32_t getLayerCount() const
std::vector< Layer * > & getChangedLayers()
void deleteLayer(Layer *)
Map(const std::string &identifier, RenderBackend *renderbackend, const std::vector< RendererBase * > &renderers, TimeProvider *tp_master=NULL)
float getTimeMultiplier() const
float getMultiplier() const
Layer * createLayer(const std::string &identifier, CellGrid *grid)
void getMinMaxCoordinates(ExactModelCoordinate &min, ExactModelCoordinate &max)
void setTimeMultiplier(float multip)
virtual void onLayerDelete(Map *map, Layer *layer)=0
void removeCamera(const std::string &id)
const std::string & getId() const
virtual void onLayerCreate(Map *map, Layer *layer)=0
const std::list< Layer * > & getLayers() const
void getMatchingCoordinates(const ModelCoordinate &coord_to_map, const Layer *from_layer, const Layer *to_layer, std::vector< ModelCoordinate > &matching_coords) const
TimeProvider * getTimeProvider()
const std::vector< Camera * > & getCameras() const
credit to phoku for his NodeDisplay example which the visitor code is adapted from ( he coded the qua...