diff --git a/map/user_mark.cpp b/map/user_mark.cpp index 51337c9c42..c26d17ae21 100644 --- a/map/user_mark.cpp +++ b/map/user_mark.cpp @@ -60,8 +60,8 @@ drape_ptr DebugMarkPoint::GetSymbolNames( return symbol; } -ColoredDebugMarkPoint::ColoredDebugMarkPoint(m2::PointD const & ptOrg) - : UserMark(ptOrg, UserMark::Type::DEBUG_MARK) +ColoredMarkPoint::ColoredMarkPoint(m2::PointD const & ptOrg) + : UserMark(ptOrg, UserMark::Type::COLORED) { auto const vs = static_cast(df::VisualParams::Instance().GetVisualScale()); @@ -74,13 +74,21 @@ ColoredDebugMarkPoint::ColoredDebugMarkPoint(m2::PointD const & ptOrg) m_coloredSymbols.m_zoomInfo.insert(std::make_pair(1, params)); } -void ColoredDebugMarkPoint::SetColor(dp::Color const & color) +void ColoredMarkPoint::SetColor(dp::Color const & color) { SetDirty(); m_coloredSymbols.m_zoomInfo.begin()->second.m_color = color; } -drape_ptr ColoredDebugMarkPoint::GetColoredSymbols() const +void ColoredMarkPoint::SetRadius(float radius) +{ + SetDirty(); + + auto const vs = static_cast(df::VisualParams::Instance().GetVisualScale()); + m_coloredSymbols.m_zoomInfo.begin()->second.m_radiusInPixels = radius * vs; +} + +drape_ptr ColoredMarkPoint::GetColoredSymbols() const { return make_unique_dp(m_coloredSymbols); } @@ -99,6 +107,7 @@ string DebugPrint(UserMark::Type type) case UserMark::Type::SPEED_CAM: return "SPEED_CAM"; case UserMark::Type::LOCAL_ADS: return "LOCAL_ADS"; case UserMark::Type::TRANSIT: return "TRANSIT"; + case UserMark::Type::COLORED: return "COLORED"; case UserMark::Type::USER_MARK_TYPES_COUNT: return "USER_MARK_TYPES_COUNT"; case UserMark::Type::USER_MARK_TYPES_COUNT_MAX: return "USER_MARK_TYPES_COUNT_MAX"; } diff --git a/map/user_mark.hpp b/map/user_mark.hpp index 8933e9e08a..48149f7dca 100644 --- a/map/user_mark.hpp +++ b/map/user_mark.hpp @@ -33,9 +33,9 @@ public: RoadWarning, }; - enum Type: uint32_t + enum Type : uint32_t { - BOOKMARK, // Should always be the first one + BOOKMARK, // Should always be the first one API, SEARCH, STATIC, @@ -44,7 +44,8 @@ public: ROAD_WARNING, TRANSIT, LOCAL_ADS, - DEBUG_MARK, + DEBUG_MARK, // Plain "DEBUG" results in a name collision. + COLORED, USER_MARK_TYPES_COUNT, USER_MARK_TYPES_COUNT_MAX = 1000, }; @@ -134,12 +135,13 @@ public: drape_ptr GetSymbolNames() const override; }; -class ColoredDebugMarkPoint : public UserMark +class ColoredMarkPoint : public UserMark { public: - ColoredDebugMarkPoint(m2::PointD const & ptOrg); + ColoredMarkPoint(m2::PointD const & ptOrg); void SetColor(dp::Color const & color); + void SetRadius(float radius); bool SymbolIsPOI() const override { return true; } drape_ptr GetSymbolNames() const override { return nullptr; } drape_ptr GetColoredSymbols() const override;