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);