namespace dk { template Tile::Tile (T* parData, const TileCoords& parPos, const coords& parBlockOffs, const PixelConv* parPConv) : m_position(parPos), m_block_offs(parBlockOffs), m_pixconv(parPConv), m_data(parData) { DK_ASSERT(m_pixconv); DK_ASSERT(m_data); } template const T& Tile::data() const { return *m_data; } template T& Tile::data() { return *m_data; } template auto Tile::block_position() const -> const coords& { return m_position.position(); } template const TileCoords& Tile::raw_coords() const { return m_position; } template auto Tile::screen_position() const -> coords { return m_pixconv->to_pixel(m_position.position()); } } //namespace dk