FIFE
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
FIFE::Map Class Reference

A container of Layer(s). More...

#include <map.h>

+ Inheritance diagram for FIFE::Map:
+ Collaboration diagram for FIFE::Map:

Public Member Functions

 Map (const std::string &identifier, RenderBackend *renderbackend, const std::vector< RendererBase * > &renderers, TimeProvider *tp_master=NULL)
 Construct a map To add map to model, one should call Model::addMap (otherwise map is not registered with the engine properly) More...
 
 ~Map ()
 Destructor. More...
 
const std::string & getId () const
 Get the identifier for this map. More...
 
void setId (const std::string &id)
 Sets the identifier for this map. More...
 
LayercreateLayer (const std::string &identifier, CellGrid *grid)
 Add a Layer to this Map. More...
 
void deleteLayer (Layer *)
 Delete a layer from the map. More...
 
const std::list< Layer * > & getLayers () const
 Get the layers on this map. More...
 
LayergetLayer (const std::string &identifier)
 Get the layer with the given id. More...
 
uint32_t getLayerCount () const
 Get the overall number of layers. More...
 
void deleteLayers ()
 Delete all layers from the map. More...
 
void getMatchingCoordinates (const ModelCoordinate &coord_to_map, const Layer *from_layer, const Layer *to_layer, std::vector< ModelCoordinate > &matching_coords) const
 Maps coordinate from one layer to another. More...
 
void getMinMaxCoordinates (ExactModelCoordinate &min, ExactModelCoordinate &max)
 Retrieves the minimum/maximum coordinates of instances on the map. More...
 
bool update ()
 Called periodically to update events on map. More...
 
void setTimeMultiplier (float multip)
 Sets speed for the map. More...
 
float getTimeMultiplier () const
 Gets model speed. More...
 
TimeProvidergetTimeProvider ()
 Gets timeprovider used in the map. More...
 
void addChangeListener (MapChangeListener *listener)
 Adds new change listener. More...
 
void removeChangeListener (MapChangeListener *listener)
 Removes associated change listener. More...
 
bool isChanged ()
 Returns true, if map information was changed during previous update round. More...
 
std::vector< Layer * > & getChangedLayers ()
 Returns layers that were changed during previous update round. More...
 
CameraaddCamera (const std::string &id, Layer *layer, const Rect &viewport)
 Adds camera to the map. More...
 
void removeCamera (const std::string &id)
 Removes a camera from the map. More...
 
CameragetCamera (const std::string &id)
 Get a camera by its identifier. More...
 
const std::vector< Camera * > & getCameras () const
 Get a list containing all cameras. More...
 
void setFilename (const std::string &file)
 
const std::string & getFilename () const
 
void addInstanceForTransfer (Instance *instance, const Location &target)
 Adds instance that is to be transferred to another layer. More...
 
void removeInstanceForTransfer (Instance *instance)
 Removes instance that should be transferred to another layer. More...
 
void initializeCellCaches ()
 Creates cellcaches for this map. More...
 
void finalizeCellCaches ()
 Creates cellcaches for this map. More...
 
- Public Member Functions inherited from FIFE::FifeClass
 FifeClass ()
 
virtual ~FifeClass ()
 
fifeid_t getFifeId ()
 Gets unique id of this instance inside the engine. More...
 

Private Member Functions

 Map (const Map &map)
 
Mapoperator= (const Map &map)
 

Private Attributes

std::string m_id
 
std::string m_filename
 
std::list< Layer * > m_layers
 
TimeProvider m_timeProvider
 
std::vector< MapChangeListener * > m_changeListeners
 listeners for map changes More...
 
std::vector< Layer * > m_changedLayers
 holds changed layers after each update More...
 
std::vector< Camera * > m_cameras
 holds the cameras attached to this map More...
 
RenderBackendm_renderBackend
 pointer to renderbackend More...
 
std::vector< RendererBase * > m_renderers
 holds handles to all created renderers More...
 
bool m_changed
 true, if something was changed on map during previous update (layer change, creation, deletion) More...
 
std::map< Instance *, Locationm_transferInstances
 holds instances which should be transferred on the next update More...
 

Detailed Description

A container of Layer(s).

The actual data is contained in Layer objects

See Also
Layer

Definition at line 87 of file map.h.

Constructor & Destructor Documentation

FIFE::Map::Map ( const std::string &  identifier,
RenderBackend renderbackend,
const std::vector< RendererBase * > &  renderers,
TimeProvider tp_master = NULL 
)

Construct a map To add map to model, one should call Model::addMap (otherwise map is not registered with the engine properly)

Definition at line 46 of file map.cpp.

FIFE::Map::~Map ( )

Destructor.

Definition at line 58 of file map.cpp.

References deleteLayers(), and m_cameras.

FIFE::Map::Map ( const Map map)
private

Member Function Documentation

Camera * FIFE::Map::addCamera ( const std::string &  id,
Layer layer,
const Rect viewport 
)

Adds camera to the map.

The Map takes ownership of the camera so don't delete it.

Definition at line 241 of file map.cpp.

References FIFE::Camera::addRenderer(), getCamera(), m_cameras, m_renderBackend, and m_renderers.

Referenced by FIFE::MapLoader::load().

+ Here is the caller graph for this function:

void FIFE::Map::addChangeListener ( MapChangeListener listener)

Adds new change listener.

Parameters
listenerto add

Definition at line 226 of file map.cpp.

References m_changeListeners.

Referenced by FIFE::Camera::updateMap().

+ Here is the caller graph for this function:

void FIFE::Map::addInstanceForTransfer ( Instance instance,
const Location target 
)

Adds instance that is to be transferred to another layer.

Parameters
instanceA pointer to the instance that is to be transferred.
targetA const reference to the target location.

Definition at line 295 of file map.cpp.

References FIFE::Location::getExactLayerCoordinates(), FIFE::Location::getLayer(), m_transferInstances, FIFE::Location::setExactLayerCoordinates(), and FIFE::Location::setLayer().

Referenced by FIFE::Instance::processMovement().

+ Here is the caller graph for this function:

Layer * FIFE::Map::createLayer ( const std::string &  identifier,
CellGrid grid 
)

Add a Layer to this Map.

Map owns the returned pointer to the new Layer, so don't delete it!

Definition at line 82 of file map.cpp.

References m_changed, m_changeListeners, and m_layers.

Referenced by FIFE::MapLoader::load().

+ Here is the caller graph for this function:

void FIFE::Map::deleteLayer ( Layer layer)

Delete a layer from the map.

Definition at line 101 of file map.cpp.

References m_changed, m_changeListeners, and m_layers.

void FIFE::Map::deleteLayers ( )

Delete all layers from the map.

Definition at line 118 of file map.cpp.

References m_changeListeners, and m_layers.

Referenced by ~Map().

+ Here is the caller graph for this function:

void FIFE::Map::finalizeCellCaches ( )

Creates cellcaches for this map.

Called from maploader.

Definition at line 335 of file map.cpp.

References FIFE::CellCache::createCells(), FIFE::CellCache::forceUpdate(), and m_layers.

Referenced by FIFE::MapLoader::load().

+ Here is the caller graph for this function:

Camera * FIFE::Map::getCamera ( const std::string &  id)

Get a camera by its identifier.

Definition at line 280 of file map.cpp.

References m_cameras.

Referenced by addCamera().

+ Here is the caller graph for this function:

const std::vector< Camera * > & FIFE::Map::getCameras ( ) const

Get a list containing all cameras.

Definition at line 291 of file map.cpp.

References m_cameras.

Referenced by FIFE::MapSaver::save().

+ Here is the caller graph for this function:

std::vector<Layer*>& FIFE::Map::getChangedLayers ( )
inline

Returns layers that were changed during previous update round.

Definition at line 177 of file map.h.

References m_changedLayers.

const std::string& FIFE::Map::getFilename ( ) const
inline

Definition at line 197 of file map.h.

References m_filename.

const std::string& FIFE::Map::getId ( ) const
inline

Get the identifier for this map.

Definition at line 103 of file map.h.

References m_id.

Referenced by FIFE::MapSaver::save().

+ Here is the caller graph for this function:

Layer * FIFE::Map::getLayer ( const std::string &  identifier)

Get the layer with the given id.

Definition at line 69 of file map.cpp.

References m_layers.

Referenced by initializeCellCaches(), FIFE::MapLoader::load(), and FIFE::Layer::~Layer().

+ Here is the caller graph for this function:

uint32_t FIFE::Map::getLayerCount ( ) const

Get the overall number of layers.

Definition at line 78 of file map.cpp.

References m_layers.

Referenced by FIFE::InstanceRenderer::renderUnsorted().

+ Here is the caller graph for this function:

const std::list<Layer*>& FIFE::Map::getLayers ( ) const
inline
void FIFE::Map::getMatchingCoordinates ( const ModelCoordinate coord_to_map,
const Layer from_layer,
const Layer to_layer,
std::vector< ModelCoordinate > &  matching_coords 
) const

Maps coordinate from one layer to another.

void FIFE::Map::getMinMaxCoordinates ( ExactModelCoordinate min,
ExactModelCoordinate max 
)

Retrieves the minimum/maximum coordinates of instances on the map.

Parameters
minA reference to a ExactModelCoordinate that will hold the minimum coordinate.
maxA reference to a ExactModelCoordinate that will hold the maximum coordinate.

Definition at line 138 of file map.cpp.

References FIFE::Location::getMapCoordinates(), m_layers, FIFE::Location::setExactLayerCoordinates(), FIFE::PointType3D< T >::x, and FIFE::PointType3D< T >::y.

float FIFE::Map::getTimeMultiplier ( ) const
inline

Gets model speed.

See Also
setTimeMultiplier.

Definition at line 155 of file map.h.

References FIFE::TimeProvider::getMultiplier(), and m_timeProvider.

TimeProvider* FIFE::Map::getTimeProvider ( )
inline

Gets timeprovider used in the map.

Definition at line 159 of file map.h.

References m_timeProvider.

Referenced by FIFE::Instance::bindTimeProvider(), FIFE::Instance::getRuntime(), and FIFE::Instance::getTotalTimeMultiplier().

+ Here is the caller graph for this function:

void FIFE::Map::initializeCellCaches ( )

Creates cellcaches for this map.

Called from maploader.

Definition at line 311 of file map.cpp.

References FIFE::Layer::addInteractLayer(), getLayer(), and m_layers.

Referenced by FIFE::MapLoader::load().

+ Here is the caller graph for this function:

bool FIFE::Map::isChanged ( )
inline

Returns true, if map information was changed during previous update round.

Definition at line 173 of file map.h.

References m_changedLayers.

Map& FIFE::Map::operator= ( const Map map)
private
void FIFE::Map::removeCamera ( const std::string &  id)

Removes a camera from the map.

Definition at line 263 of file map.cpp.

References m_cameras.

void FIFE::Map::removeChangeListener ( MapChangeListener listener)

Removes associated change listener.

Parameters
listenerto remove

Definition at line 230 of file map.cpp.

References m_changeListeners.

Referenced by FIFE::Camera::updateMap().

+ Here is the caller graph for this function:

void FIFE::Map::removeInstanceForTransfer ( Instance instance)

Removes instance that should be transferred to another layer.

Parameters
instanceA pointer to the instance that should be transferred.

Definition at line 304 of file map.cpp.

References m_transferInstances.

void FIFE::Map::setFilename ( const std::string &  file)
inline

Definition at line 196 of file map.h.

References m_filename.

Referenced by FIFE::MapLoader::load().

+ Here is the caller graph for this function:

void FIFE::Map::setId ( const std::string &  id)
inline

Sets the identifier for this map.

Definition at line 107 of file map.h.

References m_id.

void FIFE::Map::setTimeMultiplier ( float  multip)
inline

Sets speed for the map.

See Model::setTimeMultiplier.

Definition at line 151 of file map.h.

References m_timeProvider, and FIFE::TimeProvider::setMultiplier().

Member Data Documentation

std::vector<Camera*> FIFE::Map::m_cameras
private

holds the cameras attached to this map

Definition at line 234 of file map.h.

Referenced by addCamera(), getCamera(), getCameras(), removeCamera(), update(), and ~Map().

bool FIFE::Map::m_changed
private

true, if something was changed on map during previous update (layer change, creation, deletion)

Definition at line 243 of file map.h.

Referenced by createLayer(), deleteLayer(), and update().

std::vector<Layer*> FIFE::Map::m_changedLayers
private

holds changed layers after each update

Definition at line 231 of file map.h.

Referenced by getChangedLayers(), isChanged(), and update().

std::vector<MapChangeListener*> FIFE::Map::m_changeListeners
private

listeners for map changes

Definition at line 228 of file map.h.

Referenced by addChangeListener(), createLayer(), deleteLayer(), deleteLayers(), removeChangeListener(), and update().

std::string FIFE::Map::m_filename
private

Definition at line 219 of file map.h.

Referenced by getFilename(), and setFilename().

std::string FIFE::Map::m_id
private

Definition at line 218 of file map.h.

Referenced by getId(), and setId().

std::list<Layer*> FIFE::Map::m_layers
private
RenderBackend* FIFE::Map::m_renderBackend
private

pointer to renderbackend

Definition at line 237 of file map.h.

Referenced by addCamera().

std::vector<RendererBase*> FIFE::Map::m_renderers
private

holds handles to all created renderers

Definition at line 240 of file map.h.

Referenced by addCamera().

TimeProvider FIFE::Map::m_timeProvider
private

Definition at line 222 of file map.h.

Referenced by getTimeMultiplier(), getTimeProvider(), and setTimeMultiplier().

std::map<Instance*, Location> FIFE::Map::m_transferInstances
private

holds instances which should be transferred on the next update

Definition at line 246 of file map.h.

Referenced by addInstanceForTransfer(), removeInstanceForTransfer(), and update().


The documentation for this class was generated from the following files: