tmxlite 1.0.0
lightweight parse for Tiled maps
Public Member Functions | List of all members
tmx::Map Class Referencefinal

Parser for TMX format tile maps. This class can be used to parse the XML format tile maps created with the Tiled map editor, providing an interface to create drawable and physics objects. Typical usage would be to create an instance of this class before calling load() providing a path to the *.tmx file to be loaded. Then layers or objects can be requested from the Map class to be interpreted as needed. More...

#include <Map.hpp>

Public Member Functions

 Map (const Map &)=delete
 
Mapoperator= (const Map &)=delete
 
 Map (Map &&)=default
 
Mapoperator= (Map &&)=default
 
bool load (const std::string &)
 Attempts to parse the tilemap at the given location.
 
bool loadFromString (const std::string &data, const std::string &workingDir)
 Loads a map from a document stored in a string.
 
const VersiongetVersion () const
 Returns the version of the tile map last parsed. If no tile map has yet been parsed the version will read 0, 0.
 
Orientation getOrientation () const
 Returns the orientation of the map if one is loaded, else returns None.
 
RenderOrder getRenderOrder () const
 Returns the RenderOrder of the map if one is loaded, else returns None.
 
const Vector2ugetTileCount () const
 Returns the tile count of the map in the X and Y directions.
 
const Vector2ugetTileSize () const
 Returns the size of the tile grid in this map. Actual tile sizes may vary and will be extended / shrunk about the bottom left corner of the tile.
 
FloatRect getBounds () const
 Returns the bounds of the map.
 
float getHexSideLength () const
 Returns the length of an edge of a tile if a Hexagonal map is loaded. The length returned is in pixels of the straight edge running along the axis returned by getStaggerAxis(). If no map is loaded or the loaded map is not of Hexagonal orientation this function returns 0.f.
 
StaggerAxis getStaggerAxis () const
 Stagger axis of the map. If either a Staggered or Hexagonal tile map is loaded this returns which axis the map is staggered along, else returns None.
 
StaggerIndex getStaggerIndex () const
 Stagger Index of the loaded map. If a Staggered or Hexagonal map is loaded this returns whether the even or odd rows of tiles are staggered, otherwise it returns None.
 
const ColourgetBackgroundColour () const
 Returns the background colour of the map.
 
const std::vector< Tileset > & getTilesets () const
 Returns a reference to the vector of tile sets used by the map.
 
const std::vector< Layer::Ptr > & getLayers () const
 Returns a reference to the vector containing the layer data. Layers are pointer-to-baseclass, the concrete type of which can be found via Layer::getType()
 
const std::string & getClass () const
 Returns the class of the Map, as defined in the editor Tiled 1.9+.
 
const std::vector< Property > & getProperties () const
 Returns a vector of Property objects loaded by the map.
 
const std::map< std::uint32_t, Tileset::Tile > & getAnimatedTiles () const
 Returns a Hashmap of all animated tiles accessible by TileID.
 
const std::string & getWorkingDirectory () const
 Returns the current working directory of the map. Images and other resources are loaded relative to this.
 
std::unordered_map< std::string, Object > & getTemplateObjects ()
 Returns an unordered_map of template objects indexed by file name.
 
const std::unordered_map< std::string, Object > & getTemplateObjects () const
 
std::unordered_map< std::string, Tileset > & getTemplateTilesets ()
 Returns an unordered_map of tilesets used by templated objects. If Object::getTilesetName() is not empty it can be used to retreive a tileset from this map. Otherwise the object's tileset can be found from in the map's global tilesets returned by getTilesets().
 
const std::unordered_map< std::string, Tileset > & getTemplateTilesets () const
 
bool isInfinite () const
 Returns true if this is in infinite tile map. Infinite maps store their tile data in for tile layers in chunks. If this is an infinite map use TileLayer::getChunks() to get tile IDs rather than TileLayer::getTiles().
 
Vector2f getParallaxOrigin () const
 

Detailed Description

Parser for TMX format tile maps. This class can be used to parse the XML format tile maps created with the Tiled map editor, providing an interface to create drawable and physics objects. Typical usage would be to create an instance of this class before calling load() providing a path to the *.tmx file to be loaded. Then layers or objects can be requested from the Map class to be interpreted as needed.

See also
https://doc.mapeditor.org/en/stable/reference/tmx-map-format/#map

Member Function Documentation

◆ getLayers()

const std::vector< Layer::Ptr > & tmx::Map::getLayers ( ) const
inline

Returns a reference to the vector containing the layer data. Layers are pointer-to-baseclass, the concrete type of which can be found via Layer::getType()

See also
Layer

◆ isInfinite()

bool tmx::Map::isInfinite ( ) const
inline

Returns true if this is in infinite tile map. Infinite maps store their tile data in for tile layers in chunks. If this is an infinite map use TileLayer::getChunks() to get tile IDs rather than TileLayer::getTiles().

See also
TileLayer

◆ load()

bool tmx::Map::load ( const std::string & )

Attempts to parse the tilemap at the given location.

Parameters
std::stringPath to map file to try to parse
Returns
true if map was parsed successfully else returns false. In debug mode this will attempt to log any errors to the console.

◆ loadFromString()

bool tmx::Map::loadFromString ( const std::string & data,
const std::string & workingDir )

Loads a map from a document stored in a string.

Parameters
dataA std::string containing the map data to load
workingDirA std::string containing the working directory in which to find assets such as tile sets or images
Returns
true if successful, else false

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