tmxlite 1.0.0
lightweight parse for Tiled maps
Public Types | Public Member Functions | Protected Member Functions | List of all members
tmx::Layer Class Referenceabstract

Represents a layer of a tmx format tile map. This is an abstract base class from which all layer types are derived. More...

#include <Layer.hpp>

Inheritance diagram for tmx::Layer:
tmx::ImageLayer tmx::LayerGroup tmx::ObjectGroup tmx::TileLayer

Public Types

enum class  Type { Tile , Object , Image , Group }
 Layer type as returned by getType() Tile: this layer is a TileLayer type Object: This layer is an ObjectGroup type Image: This layer is an ImageLayer type Group: This layer is a LayerGroup type.
 
using Ptr = std::unique_ptr<Layer>
 

Public Member Functions

virtual Type getType () const =0
 Returns a Type value representing the concrete type. Use this when deciding which conrete layer type to use when calling the templated function getLayerAs<T>()
 
const std::string & getClass () const
 Returns the class of the Layer, as defined in the editor Tiled 1.9+.
 
template<typename T >
T & getLayerAs ()
 Use this to get a reference to the concrete layer type which this layer points to. Use getType() to return the type value of this layer and determine if the concrete type is TileLayer, ObjectGroup, ImageLayer, or LayerGroup.
 
template<typename T >
const T & getLayerAs () const
 
virtual void parse (const pugi::xml_node &, Map *=nullptr)=0
 Attempts to parse the specific node layer type.
 
const std::string & getName () const
 Returns the name of the layer.
 
float getOpacity () const
 Returns the opacity value for the layer.
 
bool getVisible () const
 Returns whether this layer is visible or not.
 
const Vector2igetOffset () const
 Returns the offset from the top left corner of the layer, in pixels.
 
const Vector2fgetParallaxFactor () const
 Returns the parallax factor.
 
Colour getTintColour () const
 Returns the tint colour of the layer. Defaults to 0xFFFFFFFF - pure white.
 
const Vector2ugetSize () const
 Returns the size of the layer, in pixels. This will be the same as the map size for fixed size maps.
 
const std::vector< Property > & getProperties () const
 Returns the list of properties of this layer.
 
template<>
ImageLayergetLayerAs ()
 
template<>
const ImageLayergetLayerAs () const
 
template<>
LayerGroupgetLayerAs ()
 
template<>
const LayerGroupgetLayerAs () const
 
template<>
ObjectGroupgetLayerAs ()
 
template<>
const ObjectGroupgetLayerAs () const
 
template<>
TileLayergetLayerAs ()
 
template<>
const TileLayergetLayerAs () const
 

Protected Member Functions

void setName (const std::string &name)
 
void setClass (const std::string &cls)
 
void setOpacity (float opacity)
 
void setVisible (bool visible)
 
void setOffset (std::int32_t x, std::int32_t y)
 
void setParallaxFactor (float x, float y)
 
void setTintColour (Colour c)
 
void setSize (std::uint32_t width, std::uint32_t height)
 
void addProperty (const pugi::xml_node &node)
 

Detailed Description

Represents a layer of a tmx format tile map. This is an abstract base class from which all layer types are derived.

Member Function Documentation

◆ getType()

virtual Type tmx::Layer::getType ( ) const
pure virtual

Returns a Type value representing the concrete type. Use this when deciding which conrete layer type to use when calling the templated function getLayerAs<T>()

Implemented in tmx::ImageLayer, tmx::LayerGroup, tmx::ObjectGroup, and tmx::TileLayer.

◆ parse()

virtual void tmx::Layer::parse ( const pugi::xml_node & ,
Map * = nullptr )
pure virtual

Attempts to parse the specific node layer type.

Implemented in tmx::ImageLayer, tmx::LayerGroup, tmx::ObjectGroup, and tmx::TileLayer.


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