#ifndef id6FB3FC97331449038D42AAAB4C01ABA1 #define id6FB3FC97331449038D42AAAB4C01ABA1 #include "doorkeeper/components/layer.hpp" #include "doorkeeper/components/exception.hpp" #include #include #include #include namespace dk { template class BaseMapSource; template class Tyler { typedef std::unique_ptr> LayerPtr; typedef std::vector LayerList; public: typedef typename LayerBase::coords coords; Tyler ( void ) = delete; Tyler ( Tyler&& ) = default; explicit Tyler ( const coords& parTileSize ); ~Tyler ( void ) noexcept = default; typename coords::scalar_type tiles_count ( void ) const; const coords& map_size ( void ) const { return m_size; } template Layer& push_layer ( BaseMapSource* parTilemap, int parIndex ); template Layer& push_layer ( BaseMapSource* parTilemap, const coords& parSubdiv, int parIndex ); template void push_layer_void ( BaseMapSource* parTilemap, int parIndex ); void preload ( const coords& parFrom, const coords& parTo ); private: coords m_size; const coords m_tilesize; LayerList m_layers; }; } //namespace dk #include "doorkeeper/implem/tyler.inl" #endif