diff --git a/drape_frontend/apply_feature_functors.cpp b/drape_frontend/apply_feature_functors.cpp index a603346943..a5d922add0 100644 --- a/drape_frontend/apply_feature_functors.cpp +++ b/drape_frontend/apply_feature_functors.cpp @@ -69,17 +69,21 @@ class LinesStat public: ~LinesStat() { - map zoomValues; - for (pair const & f : m_features) + std::map zoomValues; + for (std::pair const & f : m_features) { TValue & v = zoomValues[f.first.second]; v.m_neededPoints += f.second.m_neededPoints; - v.m_readedPoints += f.second.m_readedPoints; + v.m_readPoints += f.second.m_readPoints; } - LOG(LINFO, ("========================")); - for (pair const & v : zoomValues) - LOG(LINFO, ("Zoom = ", v.first, " Percent = ", 1 - v.second.m_neededPoints / (double)v.second.m_readedPoints)); + LOG(LINFO, ("===== Lines filtering stats =====")); + for (std::pair const & v : zoomValues) + { + int const filtered = v.second.m_readPoints - v.second.m_neededPoints; + LOG(LINFO, ("Zoom =", v.first, "Filtered", 100 * filtered / (double)v.second.m_readPoints, "% (", + filtered, "out of", v.second.m_readPoints, "points)")); + } } static LinesStat & Get() @@ -88,43 +92,30 @@ public: return s_stat; } - void InsertLine(FeatureID const & id, double scale, int vertexCount, int renderVertexCount) - { - int s = 0; - double factor = 5.688; - while (factor < scale) - { - s++; - factor = factor * 2.0; - } - - InsertLine(id, s, vertexCount, renderVertexCount); - } - void InsertLine(FeatureID const & id, int scale, int vertexCount, int renderVertexCount) { TKey key(id, scale); - lock_guard g(m_mutex); + std::lock_guard g(m_mutex); if (m_features.find(key) != m_features.end()) return; TValue & v = m_features[key]; - v.m_readedPoints = vertexCount; + v.m_readPoints = vertexCount; v.m_neededPoints = renderVertexCount; } private: LinesStat() = default; - using TKey = pair; + using TKey = std::pair; struct TValue { - int m_readedPoints = 0; + int m_readPoints = 0; int m_neededPoints = 0; }; - map m_features; - mutex m_mutex; + std::map m_features; + std::mutex m_mutex; }; #endif @@ -893,7 +884,7 @@ void ApplyLineFeatureGeometry::ProcessLineRule(drule::BaseRule const * rule) void ApplyLineFeatureGeometry::Finish() { #ifdef LINES_GENERATION_CALC_FILTERED_POINTS - LinesStat::Get().InsertLine(m_f.GetID(), m_currentScaleGtoP, m_readCount, static_cast(m_spline->GetSize())); + LinesStat::Get().InsertLine(m_f.GetID(), m_tileKey.m_zoomLevel, m_readCount, static_cast(m_spline->GetSize())); #endif }