From 41c112538842567945436ad77e69d32db581387a Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Thu, 3 Oct 2024 05:44:40 -0500 Subject: [PATCH] Fix usage of vertexRadials in ComputeSweep --- .../scwx/qt/view/level2_product_view.cpp | 31 ++++++++++++------- 1 file changed, 19 insertions(+), 12 deletions(-) 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 15112410..a2c1b42e 100644 --- a/scwx-qt/source/scwx/qt/view/level2_product_view.cpp +++ b/scwx-qt/source/scwx/qt/view/level2_product_view.cpp @@ -539,8 +539,8 @@ void Level2ProductView::ComputeSweep() return; } - const std::size_t radials = radarData->crbegin()->first + 1; - std::size_t vertexRadials = radials; + std::size_t radials = radarData->crbegin()->first + 1; + std::size_t vertexRadials = radials; // When there is missing data, insert another empty vertex radial at the end // to avoid stretching @@ -551,6 +551,11 @@ void Level2ProductView::ComputeSweep() ++vertexRadials; } + // Limit radials + radials = std::min(radials, common::MAX_0_5_DEGREE_RADIALS); + vertexRadials = + std::min(vertexRadials, common::MAX_0_5_DEGREE_RADIALS); + p->ComputeCoordinates(radarData); const std::vector& coordinates = p->coordinates_; @@ -735,15 +740,16 @@ void Level2ProductView::ComputeSweep() { const std::uint16_t baseCoord = gate - 1; - std::size_t offset1 = ((startRadial + radial) % radials * + std::size_t offset1 = ((startRadial + radial) % vertexRadials * common::MAX_DATA_MOMENT_GATES + baseCoord) * 2; std::size_t offset2 = offset1 + gateSize * 2; - std::size_t offset3 = (((startRadial + radial + 1) % radials) * - common::MAX_DATA_MOMENT_GATES + - baseCoord) * - 2; + std::size_t offset3 = + (((startRadial + radial + 1) % vertexRadials) * + common::MAX_DATA_MOMENT_GATES + + baseCoord) * + 2; std::size_t offset4 = offset3 + gateSize * 2; vertices[vIndex++] = coordinates[offset1]; @@ -770,14 +776,15 @@ void Level2ProductView::ComputeSweep() { const std::uint16_t baseCoord = gate; - std::size_t offset1 = ((startRadial + radial) % radials * - common::MAX_DATA_MOMENT_GATES + - baseCoord) * - 2; - std::size_t offset2 = (((startRadial + radial + 1) % radials) * + std::size_t offset1 = ((startRadial + radial) % vertexRadials * common::MAX_DATA_MOMENT_GATES + baseCoord) * 2; + std::size_t offset2 = + (((startRadial + radial + 1) % vertexRadials) * + common::MAX_DATA_MOMENT_GATES + + baseCoord) * + 2; vertices[vIndex++] = p->latitude_; vertices[vIndex++] = p->longitude_;