From 4c9e49293fc07c202d2f062f6a846438e2c43b2c Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Tue, 17 Oct 2023 21:40:51 -0300 Subject: [PATCH] [drape] Minor fix for z20+ scales. Signed-off-by: Viktor Govako --- drape_frontend/visual_params.hpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/drape_frontend/visual_params.hpp b/drape_frontend/visual_params.hpp index 85e67a0346..7eecb264ad 100644 --- a/drape_frontend/visual_params.hpp +++ b/drape_frontend/visual_params.hpp @@ -123,21 +123,25 @@ public: ArrayView(ArrayView &&) = default; size_t size() const { return m_size; } - T operator[](size_t i) const + T const & operator[](size_t i) const { ASSERT_LESS(i, m_size, ()); return m_arr[i]; } + T const & back() const + { + ASSERT_GREATER(m_size, 0, ()); + return m_arr[m_size - 1]; + } }; template typename ArrayT::value_type InterpolateByZoomLevels(int index, float lerpCoef, ArrayT const & values) { ASSERT_GREATER_OR_EQUAL(index, 0, ()); - ASSERT_GREATER(values.size(), scales::UPPER_STYLE_SCALE, ()); - if (index < scales::UPPER_STYLE_SCALE) + if (index + 1 < values.size()) return values[index] + (values[index + 1] - values[index]) * lerpCoef; - return values[scales::UPPER_STYLE_SCALE]; + return values.back(); } double GetNormalizedZoomLevel(double screenScale, int minZoom = 1);