#pragma once #include #include #include #include namespace scwx { namespace qt { namespace map { class MapContext : public gl::GlContext { public: explicit MapContext( std::shared_ptr radarProductView = nullptr); ~MapContext(); MapContext(const MapContext&) = delete; MapContext& operator=(const MapContext&) = delete; MapContext(MapContext&&) noexcept; MapContext& operator=(MapContext&&) noexcept; std::weak_ptr map() const; MapSettings& settings(); float pixel_ratio() const; std::shared_ptr radar_product_view() const; common::RadarProductGroup radar_product_group() const; std::string radar_product() const; int16_t radar_product_code() const; void set_map(std::shared_ptr map); void set_pixel_ratio(float pixelRatio); void set_radar_product_view( std::shared_ptr radarProductView); void set_radar_product_group(common::RadarProductGroup radarProductGroup); void set_radar_product(const std::string& radarProduct); void set_radar_product_code(int16_t radarProductCode); private: class Impl; std::unique_ptr p; }; } // namespace map } // namespace qt } // namespace scwx