#pragma once #include #include namespace scwx { namespace qt { namespace map { class DrawLayerImpl; class DrawLayer : public GenericLayer { public: explicit DrawLayer(const std::shared_ptr& context); virtual ~DrawLayer(); virtual void Initialize() override; virtual void Render(const QMapLibreGL::CustomLayerRenderParameters&) override; virtual void Deinitialize() override; virtual bool RunMousePicking(const QMapLibreGL::CustomLayerRenderParameters& params, const QPointF& mouseLocalPos, const QPointF& mouseGlobalPos, const glm::vec2& mouseCoords, const common::Coordinate& mouseGeoCoords) override; protected: void AddDrawItem(const std::shared_ptr& drawItem); private: std::unique_ptr p; }; } // namespace map } // namespace qt } // namespace scwx