#pragma once #include #include #include #include namespace scwx::qt::view { class Level3RadialView : public Level3ProductView { Q_OBJECT public: explicit Level3RadialView( const std::string& product, std::shared_ptr radarProductManager); ~Level3RadialView() override; Level3RadialView(const Level3RadialView&) = delete; Level3RadialView(Level3RadialView&&) = delete; Level3RadialView& operator=(const Level3RadialView&) = delete; Level3RadialView& operator=(Level3RadialView&&) = delete; [[nodiscard]] std::optional elevation() const override; [[nodiscard]] float range() const override; [[nodiscard]] std::chrono::system_clock::time_point sweep_time() const override; [[nodiscard]] std::uint16_t vcp() const override; [[nodiscard]] const std::vector& vertices() const override; [[nodiscard]] std::tuple GetMomentData() const override; [[nodiscard]] std::optional GetBinLevel(const common::Coordinate& coordinate) const override; static std::shared_ptr Create(const std::string& product, std::shared_ptr radarProductManager); protected: boost::asio::thread_pool& thread_pool() override; protected slots: void ComputeSweep() override; private: class Impl; std::unique_ptr p; }; } // namespace scwx::qt::view