From a3eb53a649f7919a46e18e8a827db9baa45d9626 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Sun, 15 Dec 2024 22:32:25 -0600 Subject: [PATCH] Additional clang-tidy action cleanup --- .clang-tidy | 1 + scwx-qt/source/scwx/qt/main/main_window.cpp | 4 +- .../scwx/qt/manager/radar_product_manager.hpp | 12 +-- scwx-qt/source/scwx/qt/map/map_settings.hpp | 4 +- scwx-qt/source/scwx/qt/map/map_widget.hpp | 25 +++--- .../scwx/qt/map/radar_product_layer.cpp | 2 +- .../source/scwx/qt/settings/map_settings.cpp | 11 ++- .../source/scwx/qt/settings/map_settings.hpp | 10 +-- scwx-qt/source/scwx/qt/ui/settings_dialog.cpp | 4 +- .../scwx/qt/view/level2_product_view.cpp | 51 +++++++----- .../scwx/qt/view/level3_product_view.cpp | 12 +-- .../scwx/qt/view/level3_product_view.hpp | 2 +- .../scwx/qt/view/level3_radial_view.cpp | 83 +++++++++---------- .../scwx/qt/view/level3_raster_view.cpp | 13 +-- .../scwx/qt/view/radar_product_view.hpp | 11 +-- 15 files changed, 128 insertions(+), 117 deletions(-) diff --git a/.clang-tidy b/.clang-tidy index 1eed15a2..602e3d0c 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -6,6 +6,7 @@ Checks: - 'misc-*' - 'modernize-*' - 'performance-*' + - '-cppcoreguidelines-pro-type-reinterpret-cast' - '-misc-include-cleaner' - '-misc-non-private-member-variables-in-classes' - '-modernize-use-trailing-return-type' diff --git a/scwx-qt/source/scwx/qt/main/main_window.cpp b/scwx-qt/source/scwx/qt/main/main_window.cpp index 313234d0..ad504cc0 100644 --- a/scwx-qt/source/scwx/qt/main/main_window.cpp +++ b/scwx-qt/source/scwx/qt/main/main_window.cpp @@ -1098,12 +1098,12 @@ void MainWindowImpl::ConnectOtherSignals() mainWindow_, [this](Qt::CheckState state) { - bool smoothingEnabled = (state == Qt::CheckState::Checked); + const bool smoothingEnabled = (state == Qt::CheckState::Checked); auto it = std::find(maps_.cbegin(), maps_.cend(), activeMap_); if (it != maps_.cend()) { - std::size_t i = std::distance(maps_.cbegin(), it); + const std::size_t i = std::distance(maps_.cbegin(), it); settings::MapSettings::Instance().smoothing_enabled(i).StageValue( smoothingEnabled); } diff --git a/scwx-qt/source/scwx/qt/manager/radar_product_manager.hpp b/scwx-qt/source/scwx/qt/manager/radar_product_manager.hpp index 9232f7d9..3f4899ea 100644 --- a/scwx-qt/source/scwx/qt/manager/radar_product_manager.hpp +++ b/scwx-qt/source/scwx/qt/manager/radar_product_manager.hpp @@ -41,12 +41,12 @@ public: */ static void DumpRecords(); - const std::vector& coordinates(common::RadialSize radialSize, - bool smoothingEnabled) const; - const scwx::util::time_zone* default_time_zone() const; - float gate_size() const; - std::string radar_id() const; - std::shared_ptr radar_site() const; + [[nodiscard]] const std::vector& + coordinates(common::RadialSize radialSize, bool smoothingEnabled) const; + [[nodiscard]] const scwx::util::time_zone* default_time_zone() const; + [[nodiscard]] float gate_size() const; + [[nodiscard]] std::string radar_id() const; + [[nodiscard]] std::shared_ptr radar_site() const; void Initialize(); diff --git a/scwx-qt/source/scwx/qt/map/map_settings.hpp b/scwx-qt/source/scwx/qt/map/map_settings.hpp index a5d445cf..a015aca3 100644 --- a/scwx-qt/source/scwx/qt/map/map_settings.hpp +++ b/scwx-qt/source/scwx/qt/map/map_settings.hpp @@ -9,8 +9,8 @@ namespace map struct MapSettings { - explicit MapSettings() {} - ~MapSettings() = default; + explicit MapSettings() = default; + ~MapSettings() = default; MapSettings(const MapSettings&) = delete; MapSettings& operator=(const MapSettings&) = delete; diff --git a/scwx-qt/source/scwx/qt/map/map_widget.hpp b/scwx-qt/source/scwx/qt/map/map_widget.hpp index 8f5b2951..23d38680 100644 --- a/scwx-qt/source/scwx/qt/map/map_widget.hpp +++ b/scwx-qt/source/scwx/qt/map/map_widget.hpp @@ -39,18 +39,19 @@ public: void DumpLayerList() const; - common::Level3ProductCategoryMap GetAvailableLevel3Categories(); - float GetElevation() const; - std::vector GetElevationCuts() const; - std::vector GetLevel3Products(); - std::string GetMapStyle() const; - common::RadarProductGroup GetRadarProductGroup() const; - std::string GetRadarProductName() const; - std::shared_ptr GetRadarSite() const; - bool GetRadarWireframeEnabled() const; - std::chrono::system_clock::time_point GetSelectedTime() const; - bool GetSmoothingEnabled() const; - std::uint16_t GetVcp() const; + [[nodiscard]] common::Level3ProductCategoryMap + GetAvailableLevel3Categories(); + [[nodiscard]] float GetElevation() const; + [[nodiscard]] std::vector GetElevationCuts() const; + [[nodiscard]] std::vector GetLevel3Products(); + [[nodiscard]] std::string GetMapStyle() const; + [[nodiscard]] common::RadarProductGroup GetRadarProductGroup() const; + [[nodiscard]] std::string GetRadarProductName() const; + [[nodiscard]] std::shared_ptr GetRadarSite() const; + [[nodiscard]] bool GetRadarWireframeEnabled() const; + [[nodiscard]] std::chrono::system_clock::time_point GetSelectedTime() const; + [[nodiscard]] bool GetSmoothingEnabled() const; + [[nodiscard]] std::uint16_t GetVcp() const; void SelectElevation(float elevation); diff --git a/scwx-qt/source/scwx/qt/map/radar_product_layer.cpp b/scwx-qt/source/scwx/qt/map/radar_product_layer.cpp index a622b600..8d243973 100644 --- a/scwx-qt/source/scwx/qt/map/radar_product_layer.cpp +++ b/scwx-qt/source/scwx/qt/map/radar_product_layer.cpp @@ -266,7 +266,7 @@ void RadarProductLayer::Render( // Set OpenGL blend mode for transparency gl.glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - bool wireframeEnabled = context()->settings().radarWireframeEnabled_; + const bool wireframeEnabled = context()->settings().radarWireframeEnabled_; if (wireframeEnabled) { // Set polygon mode to draw wireframe diff --git a/scwx-qt/source/scwx/qt/settings/map_settings.cpp b/scwx-qt/source/scwx/qt/settings/map_settings.cpp index fd3b3001..e1c8276e 100644 --- a/scwx-qt/source/scwx/qt/settings/map_settings.cpp +++ b/scwx-qt/source/scwx/qt/settings/map_settings.cpp @@ -157,28 +157,27 @@ std::size_t MapSettings::count() const return kCount_; } -SettingsVariable& MapSettings::map_style(std::size_t i) const +SettingsVariable& MapSettings::map_style(std::size_t i) { return p->map_.at(i).mapStyle_; } -SettingsVariable& MapSettings::radar_site(std::size_t i) const +SettingsVariable& MapSettings::radar_site(std::size_t i) { return p->map_.at(i).radarSite_; } -SettingsVariable& -MapSettings::radar_product_group(std::size_t i) const +SettingsVariable& MapSettings::radar_product_group(std::size_t i) { return p->map_.at(i).radarProductGroup_; } -SettingsVariable& MapSettings::radar_product(std::size_t i) const +SettingsVariable& MapSettings::radar_product(std::size_t i) { return p->map_.at(i).radarProduct_; } -SettingsVariable& MapSettings::smoothing_enabled(std::size_t i) const +SettingsVariable& MapSettings::smoothing_enabled(std::size_t i) { return p->map_.at(i).smoothingEnabled_; } diff --git a/scwx-qt/source/scwx/qt/settings/map_settings.hpp b/scwx-qt/source/scwx/qt/settings/map_settings.hpp index 188819ac..36ce6464 100644 --- a/scwx-qt/source/scwx/qt/settings/map_settings.hpp +++ b/scwx-qt/source/scwx/qt/settings/map_settings.hpp @@ -26,11 +26,11 @@ public: MapSettings& operator=(MapSettings&&) noexcept; std::size_t count() const; - SettingsVariable& map_style(std::size_t i) const; - SettingsVariable& radar_site(std::size_t i) const; - SettingsVariable& radar_product_group(std::size_t i) const; - SettingsVariable& radar_product(std::size_t i) const; - SettingsVariable& smoothing_enabled(std::size_t i) const; + SettingsVariable& map_style(std::size_t i); + SettingsVariable& radar_site(std::size_t i); + SettingsVariable& radar_product_group(std::size_t i); + SettingsVariable& radar_product(std::size_t i); + SettingsVariable& smoothing_enabled(std::size_t i); bool Shutdown(); diff --git a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp index 59bc8881..1872be26 100644 --- a/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp +++ b/scwx-qt/source/scwx/qt/ui/settings_dialog.cpp @@ -539,8 +539,8 @@ void SettingsDialogImpl::SetupGeneralTab() self_, [this](const QString& text) { - types::UiStyle style = types::GetUiStyle(text.toStdString()); - bool themeFileEnabled = style == types::UiStyle::FusionCustom; + const types::UiStyle style = types::GetUiStyle(text.toStdString()); + const bool themeFileEnabled = style == types::UiStyle::FusionCustom; self_->ui->themeFileLineEdit->setEnabled(themeFileEnabled); self_->ui->themeFileSelectButton->setEnabled(themeFileEnabled); diff --git a/scwx-qt/source/scwx/qt/view/level2_product_view.cpp b/scwx-qt/source/scwx/qt/view/level2_product_view.cpp index 41d050c3..16d3ab50 100644 --- a/scwx-qt/source/scwx/qt/view/level2_product_view.cpp +++ b/scwx-qt/source/scwx/qt/view/level2_product_view.cpp @@ -25,6 +25,9 @@ static constexpr std::uint32_t kMaxRadialGates_ = common::MAX_0_5_DEGREE_RADIALS * common::MAX_DATA_MOMENT_GATES; static constexpr std::uint32_t kMaxCoordinates_ = kMaxRadialGates_ * 2u; +static constexpr std::uint8_t kDataWordSize8_ = 8u; +static constexpr std::uint8_t kDataWordSize16_ = 16u; + static constexpr std::size_t kVerticesPerGate_ = 6u; static constexpr std::size_t kVerticesPerOriginGate_ = 3u; @@ -108,6 +111,12 @@ public: threadPool_.join(); }; + Impl(const Impl&) = delete; + Impl& operator=(const Impl&) = delete; + + Impl(Impl&&) noexcept = default; + Impl& operator=(Impl&&) noexcept = default; + void ComputeCoordinates( const std::shared_ptr& radarData, bool smoothingEnabled); @@ -119,7 +128,7 @@ public: void ComputeEdgeValue(); template - inline T RemapDataMoment(T dataMoment) const; + [[nodiscard]] inline T RemapDataMoment(T dataMoment) const; static bool IsRadarDataIncomplete( const std::shared_ptr& radarData); @@ -130,7 +139,8 @@ public: boost::asio::thread_pool threadPool_ {1u}; common::Level2Product product_; - wsr88d::rda::DataBlockType dataBlockType_; + wsr88d::rda::DataBlockType dataBlockType_ { + wsr88d::rda::DataBlockType::Unknown}; float selectedElevation_; @@ -525,9 +535,9 @@ void Level2ProductView::ComputeSweep() std::shared_ptr radarProductManager = radar_product_manager(); - const bool smoothingEnabled = smoothing_enabled(); - p->showSmoothedRangeFolding_ = show_smoothed_range_folding(); - bool& showSmoothedRangeFolding = p->showSmoothedRangeFolding_; + const bool smoothingEnabled = smoothing_enabled(); + p->showSmoothedRangeFolding_ = show_smoothed_range_folding(); + const bool& showSmoothedRangeFolding = p->showSmoothedRangeFolding_; std::shared_ptr radarData; std::chrono::system_clock::time_point requestedTime {selected_time()}; @@ -661,7 +671,7 @@ void Level2ProductView::ComputeSweep() const auto& radialPair = *it; std::uint16_t radial = radialPair.first; const auto& radialData = radialPair.second; - std::shared_ptr + const std::shared_ptr momentData = radialData->moment_data_block(p->dataBlockType_); if (momentData0->data_word_size() != momentData->data_word_size()) @@ -748,7 +758,7 @@ void Level2ProductView::ComputeSweep() continue; } - if (nextMomentData->data_word_size() == 8) + if (nextMomentData->data_word_size() == kDataWordSize8_) { nextDataMomentsArray8 = reinterpret_cast( nextMomentData->data_moments()); @@ -783,7 +793,7 @@ void Level2ProductView::ComputeSweep() { if (!smoothingEnabled) { - std::uint8_t dataValue = dataMomentsArray8[i]; + const std::uint8_t& dataValue = dataMomentsArray8[i]; if (dataValue < snrThreshold && dataValue != RANGE_FOLDED) { continue; @@ -791,7 +801,7 @@ void Level2ProductView::ComputeSweep() for (std::size_t m = 0; m < vertexCount; m++) { - dataMoments8[mIndex++] = dataMomentsArray8[i]; + dataMoments8[mIndex++] = dataValue; if (cfpMomentsArray != nullptr) { @@ -851,7 +861,7 @@ void Level2ProductView::ComputeSweep() { if (!smoothingEnabled) { - std::uint16_t dataValue = dataMomentsArray16[i]; + const std::uint16_t& dataValue = dataMomentsArray16[i]; if (dataValue < snrThreshold && dataValue != RANGE_FOLDED) { continue; @@ -859,7 +869,7 @@ void Level2ProductView::ComputeSweep() for (std::size_t m = 0; m < vertexCount; m++) { - dataMoments16[mIndex++] = dataMomentsArray16[i]; + dataMoments16[mIndex++] = dataValue; } } else if (gate > 0) @@ -924,18 +934,19 @@ void Level2ProductView::ComputeSweep() const std::uint16_t baseCoord = gate - 1; - std::size_t offset1 = ((startRadial + radial) % vertexRadials * - common::MAX_DATA_MOMENT_GATES + - baseCoord) * - 2; - std::size_t offset2 = + const std::size_t offset1 = + ((startRadial + radial) % vertexRadials * + common::MAX_DATA_MOMENT_GATES + + baseCoord) * + 2; + const std::size_t offset2 = offset1 + static_cast(gateSize) * 2; - std::size_t offset3 = + const std::size_t offset3 = (((startRadial + radial + 1) % vertexRadials) * common::MAX_DATA_MOMENT_GATES + baseCoord) * 2; - std::size_t offset4 = + const std::size_t offset4 = offset3 + static_cast(gateSize) * 2; vertices[vIndex++] = coordinates[offset1]; @@ -955,8 +966,6 @@ void Level2ProductView::ComputeSweep() vertices[vIndex++] = coordinates[offset4]; vertices[vIndex++] = coordinates[offset4 + 1]; - - vertexCount = kVerticesPerGate_; } else { @@ -980,8 +989,6 @@ void Level2ProductView::ComputeSweep() vertices[vIndex++] = coordinates[offset2]; vertices[vIndex++] = coordinates[offset2 + 1]; - - vertexCount = kVerticesPerOriginGate_; } } } diff --git a/scwx-qt/source/scwx/qt/view/level3_product_view.cpp b/scwx-qt/source/scwx/qt/view/level3_product_view.cpp index 642e0981..3858ac11 100644 --- a/scwx-qt/source/scwx/qt/view/level3_product_view.cpp +++ b/scwx-qt/source/scwx/qt/view/level3_product_view.cpp @@ -489,8 +489,8 @@ std::uint8_t Level3ProductView::ComputeEdgeValue() const { std::uint8_t edgeValue = 0; - std::shared_ptr descriptionBlock = - p->graphicMessage_->description_block(); + const std::shared_ptr + descriptionBlock = p->graphicMessage_->description_block(); const float offset = descriptionBlock->offset(); const float scale = descriptionBlock->scale(); @@ -498,11 +498,12 @@ std::uint8_t Level3ProductView::ComputeEdgeValue() const switch (p->category_) { case common::Level3ProductCategory::Velocity: - edgeValue = (scale > 0.0f) ? (-offset / scale) : -offset; + edgeValue = static_cast((scale > 0.0f) ? (-offset / scale) : + -offset); break; case common::Level3ProductCategory::DifferentialReflectivity: - edgeValue = -offset; + edgeValue = static_cast(-offset); break; case common::Level3ProductCategory::SpectrumWidth: @@ -512,7 +513,8 @@ std::uint8_t Level3ProductView::ComputeEdgeValue() const case common::Level3ProductCategory::CorrelationCoefficient: edgeValue = static_cast( - std::max(255, descriptionBlock->number_of_levels())); + std::max(std::numeric_limits::max(), + descriptionBlock->number_of_levels())); break; case common::Level3ProductCategory::Reflectivity: diff --git a/scwx-qt/source/scwx/qt/view/level3_product_view.hpp b/scwx-qt/source/scwx/qt/view/level3_product_view.hpp index e5de1873..b5e043b3 100644 --- a/scwx-qt/source/scwx/qt/view/level3_product_view.hpp +++ b/scwx-qt/source/scwx/qt/view/level3_product_view.hpp @@ -58,7 +58,7 @@ protected: void DisconnectRadarProductManager() override; void UpdateColorTableLut() override; - std::uint8_t ComputeEdgeValue() const; + [[nodiscard]] std::uint8_t ComputeEdgeValue() const; private: class Impl; diff --git a/scwx-qt/source/scwx/qt/view/level3_radial_view.cpp b/scwx-qt/source/scwx/qt/view/level3_radial_view.cpp index f161673e..135f5e65 100644 --- a/scwx-qt/source/scwx/qt/view/level3_radial_view.cpp +++ b/scwx-qt/source/scwx/qt/view/level3_radial_view.cpp @@ -47,7 +47,8 @@ public: const std::shared_ptr& radialData, bool smoothingEnabled); - inline std::uint8_t RemapDataMoment(std::uint8_t dataMoment) const; + [[nodiscard]] inline std::uint8_t + RemapDataMoment(std::uint8_t dataMoment) const; Level3RadialView* self_; @@ -133,9 +134,9 @@ void Level3RadialView::ComputeSweep() std::shared_ptr radarProductManager = radar_product_manager(); - const bool smoothingEnabled = smoothing_enabled(); - p->showSmoothedRangeFolding_ = show_smoothed_range_folding(); - bool& showSmoothedRangeFolding = p->showSmoothedRangeFolding_; + const bool smoothingEnabled = smoothing_enabled(); + p->showSmoothedRangeFolding_ = show_smoothed_range_folding(); + const bool& showSmoothedRangeFolding = p->showSmoothedRangeFolding_; // Retrieve message from Radar Product Manager std::shared_ptr message; @@ -381,7 +382,7 @@ void Level3RadialView::ComputeSweep() if (!smoothingEnabled) { // Store data moment value - uint8_t dataValue = + const uint8_t dataValue = (i < dataMomentsArray8.size()) ? dataMomentsArray8[i] : 0; if (dataValue < snrThreshold && dataValue != RANGE_FOLDED) { @@ -470,8 +471,6 @@ void Level3RadialView::ComputeSweep() vertices[vIndex++] = coordinates[offset4]; vertices[vIndex++] = coordinates[offset4 + 1]; - - vertexCount = 6; } else { @@ -494,8 +493,6 @@ void Level3RadialView::ComputeSweep() vertices[vIndex++] = coordinates[offset2]; vertices[vIndex++] = coordinates[offset2 + 1]; - - vertexCount = 3; } } } @@ -561,44 +558,46 @@ void Level3RadialView::Impl::ComputeCoordinates( // size distance from the radar site 1.0f; - std::for_each(std::execution::par_unseq, - radials.begin(), - radials.end(), - [&](std::uint32_t radial) - { - float angle = radialData->start_angle(radial); + std::for_each( + std::execution::par_unseq, + radials.begin(), + radials.end(), + [&](std::uint32_t radial) + { + float angle = radialData->start_angle(radial); - if (smoothingEnabled) - { - angle += radialData->delta_angle(radial) * 0.5f; - } + if (smoothingEnabled) + { + static constexpr float kDeltaAngleFactor = 0.5f; + angle += radialData->delta_angle(radial) * kDeltaAngleFactor; + } - std::for_each(std::execution::par_unseq, - gates.begin(), - gates.end(), - [&](std::uint32_t gate) - { - const std::uint32_t radialGate = - radial * common::MAX_DATA_MOMENT_GATES + - gate; - const float range = - (gate + gateRangeOffset) * gateSize; - const std::size_t offset = radialGate * 2; + std::for_each( + std::execution::par_unseq, + gates.begin(), + gates.end(), + [&](std::uint32_t gate) + { + const std::uint32_t radialGate = + radial * common::MAX_DATA_MOMENT_GATES + gate; + const float range = + (static_cast(gate) + gateRangeOffset) * gateSize; + const std::size_t offset = static_cast(radialGate) * 2; - double latitude; - double longitude; + double latitude = 0.0; + double longitude = 0.0; - geodesic.Direct(radarLatitude, - radarLongitude, - angle, - range, - latitude, - longitude); + geodesic.Direct(radarLatitude, + radarLongitude, + angle, + range, + latitude, + longitude); - coordinates_[offset] = latitude; - coordinates_[offset + 1] = longitude; - }); - }); + coordinates_[offset] = static_cast(latitude); + coordinates_[offset + 1] = static_cast(longitude); + }); + }); timer.stop(); logger_->debug("Coordinates calculated in {}", timer.format(6, "%ws")); } diff --git a/scwx-qt/source/scwx/qt/view/level3_raster_view.cpp b/scwx-qt/source/scwx/qt/view/level3_raster_view.cpp index 20985537..3056cc03 100644 --- a/scwx-qt/source/scwx/qt/view/level3_raster_view.cpp +++ b/scwx-qt/source/scwx/qt/view/level3_raster_view.cpp @@ -33,7 +33,8 @@ public: } ~Level3RasterViewImpl() { threadPool_.join(); }; - inline std::uint8_t RemapDataMoment(std::uint8_t dataMoment) const; + [[nodiscard]] inline std::uint8_t + RemapDataMoment(std::uint8_t dataMoment) const; boost::asio::thread_pool threadPool_ {1u}; @@ -116,9 +117,9 @@ void Level3RasterView::ComputeSweep() std::shared_ptr radarProductManager = radar_product_manager(); - const bool smoothingEnabled = smoothing_enabled(); - p->showSmoothedRangeFolding_ = show_smoothed_range_folding(); - bool& showSmoothedRangeFolding = p->showSmoothedRangeFolding_; + const bool smoothingEnabled = smoothing_enabled(); + p->showSmoothedRangeFolding_ = show_smoothed_range_folding(); + const bool& showSmoothedRangeFolding = p->showSmoothedRangeFolding_; // Retrieve message from Radar Product Manager std::shared_ptr message; @@ -344,10 +345,10 @@ void Level3RasterView::ComputeSweep() { if (!smoothingEnabled) { - constexpr size_t vertexCount = 6; + static constexpr std::size_t vertexCount = 6; // Store data moment value - uint8_t dataValue = dataMomentsArray8[bin]; + const std::uint8_t& dataValue = dataMomentsArray8[bin]; if (dataValue < snrThreshold && dataValue != RANGE_FOLDED) { continue; diff --git a/scwx-qt/source/scwx/qt/view/radar_product_view.hpp b/scwx-qt/source/scwx/qt/view/radar_product_view.hpp index 141441bd..31d47840 100644 --- a/scwx-qt/source/scwx/qt/view/radar_product_view.hpp +++ b/scwx-qt/source/scwx/qt/view/radar_product_view.hpp @@ -47,11 +47,12 @@ public: virtual std::uint16_t vcp() const = 0; virtual const std::vector& vertices() const = 0; - std::shared_ptr radar_product_manager() const; - std::chrono::system_clock::time_point selected_time() const; - bool show_smoothed_range_folding() const; - bool smoothing_enabled() const; - std::mutex& sweep_mutex(); + [[nodiscard]] std::shared_ptr + radar_product_manager() const; + [[nodiscard]] std::chrono::system_clock::time_point selected_time() const; + [[nodiscard]] bool show_smoothed_range_folding() const; + [[nodiscard]] bool smoothing_enabled() const; + [[nodiscard]] std::mutex& sweep_mutex(); void set_radar_product_manager( std::shared_ptr radarProductManager);