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