From a40ca23f1d95a1f80ac0bb7da7a3a3d2c68c88ad Mon Sep 17 00:00:00 2001 From: Viktor Govako Date: Tue, 29 Mar 2022 00:42:22 +0300 Subject: [PATCH] Prettify CitiesBoundariesTable interface. Signed-off-by: Viktor Govako --- map/framework.cpp | 10 ++++------ search/cities_boundaries_table.cpp | 2 +- search/cities_boundaries_table.hpp | 6 +++++- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/map/framework.cpp b/map/framework.cpp index daaa52c2d7..ba6063f2b9 100644 --- a/map/framework.cpp +++ b/map/framework.cpp @@ -3214,18 +3214,16 @@ void Framework::VisualizeCityBoundariesInRect(m2::RectD const & rect) id += ", name:" + name; } - size_t const boundariesSize = boundaries.GetBoundariesForTesting().size(); - for (size_t i = 0; i < boundariesSize; ++i) + boundaries.ForEachBoundary([&id, this](indexer::CityBoundary const & cityBoundary, size_t i) { string idWithIndex = id; - auto const & cityBoundary = boundaries.GetBoundariesForTesting()[i]; - if (boundariesSize > 1) - idWithIndex = id + " , i:" + strings::to_string(i); + if (i > 0) + idWithIndex = id + ", i:" + strings::to_string(i); DrawLine(cityBoundary.m_bbox, cityBoundaryBBColor, m_drapeApi, idWithIndex + ", bb"); DrawLine(cityBoundary.m_cbox, cityBoundaryCBColor, m_drapeApi, idWithIndex + ", cb"); DrawLine(cityBoundary.m_dbox, cityBoundaryDBColor, m_drapeApi, idWithIndex + ", db"); - } + }); } } diff --git a/search/cities_boundaries_table.cpp b/search/cities_boundaries_table.cpp index df33a11c3b..fb4320f3a6 100644 --- a/search/cities_boundaries_table.cpp +++ b/search/cities_boundaries_table.cpp @@ -115,7 +115,7 @@ void GetCityBoundariesInRectForTesting(CitiesBoundariesTable const & table, m2:: { for (auto const & cb : kv.second) { - if (rect.IsIntersect(m2::RectD(cb.m_bbox.Min(), cb.m_bbox.Max()))) + if (rect.IsIntersect(cb.m_bbox.ToRect())) { featureIds.push_back(kv.first); break; diff --git a/search/cities_boundaries_table.hpp b/search/cities_boundaries_table.hpp index e45df331d1..f5b9360cab 100644 --- a/search/cities_boundaries_table.hpp +++ b/search/cities_boundaries_table.hpp @@ -54,7 +54,11 @@ public: return rect; } - std::vector const & GetBoundariesForTesting() const { return m_boundaries; } + template void ForEachBoundary(FnT && fn) const + { + for (size_t i = 0; i < m_boundaries.size(); ++i) + fn(m_boundaries[i], i); + } friend std::string DebugPrint(Boundaries const & boundaries) {