#pragma once #include "message.hpp" #include "tile_info.hpp" #include "../drape/pointers.hpp" namespace dp { class Batcher; class TextureSetHolder; } namespace df { class MapShape { public: virtual ~MapShape(){} virtual void Draw(dp::RefPointer batcher, dp::RefPointer textures) const = 0; }; class MapShapeReadedMessage : public Message { public: MapShapeReadedMessage(TileKey const & key, dp::TransferPointer shape) : m_key(key), m_shape(shape) { SetType(MapShapeReaded); } ~MapShapeReadedMessage() { m_shape.Destroy(); } TileKey const & GetKey() const { return m_key; } /// return non const reference for correct construct MasterPointer dp::TransferPointer & GetShape() { return m_shape; } private: TileKey m_key; dp::TransferPointer m_shape; }; } // namespace df