From f6e7580aff96149b2406cc327ba58b3696bceb5c Mon Sep 17 00:00:00 2001 From: Yannik Bloscheck Date: Mon, 20 Oct 2025 21:29:44 +0200 Subject: [PATCH] [styles] Add pill shapes for road shields (and reorganized the existing logic) Signed-off-by: Yannik Bloscheck --- .../drape_frontend/apply_feature_functors.cpp | 127 ++++++++++++++---- libs/indexer/road_shields_parser.cpp | 105 ++++++++------- libs/indexer/road_shields_parser.hpp | 15 +++ 3 files changed, 176 insertions(+), 71 deletions(-) diff --git a/libs/drape_frontend/apply_feature_functors.cpp b/libs/drape_frontend/apply_feature_functors.cpp index f8e1654b2..3554eb240 100644 --- a/libs/drape_frontend/apply_feature_functors.cpp +++ b/libs/drape_frontend/apply_feature_functors.cpp @@ -51,11 +51,11 @@ double const kMinVisibleFontSize = 8.0; df::ColorConstant const kPoiDeletedMaskColor = "PoiDeletedMask"; df::ColorConstant const kRoadShieldBlackTextColor = "RoadShieldBlackText"; df::ColorConstant const kRoadShieldWhiteTextColor = "RoadShieldWhiteText"; -df::ColorConstant const kRoadShieldUKYellowTextColor = "RoadShieldUKYellowText"; df::ColorConstant const kRoadShieldGreenBackgroundColor = "RoadShieldGreenBackground"; df::ColorConstant const kRoadShieldBlueBackgroundColor = "RoadShieldBlueBackground"; df::ColorConstant const kRoadShieldRedBackgroundColor = "RoadShieldRedBackground"; df::ColorConstant const kRoadShieldOrangeBackgroundColor = "RoadShieldOrangeBackground"; +df::ColorConstant const kRoadShieldUKYellowTextColor = "RoadShieldUKYellowText"; uint32_t const kPathTextBaseTextIndex = 128; uint32_t const kShieldBaseTextIndex = 0; @@ -217,31 +217,32 @@ std::string GetRoadShieldSymbolName(ftypes::RoadShield const & shield, double fo bool IsColoredRoadShield(ftypes::RoadShield const & shield) { - return shield.m_type == ftypes::RoadShieldType::Default || shield.m_type == ftypes::RoadShieldType::UK_Highway || + return shield.m_type == ftypes::RoadShieldType::Default || shield.m_type == ftypes::RoadShieldType::Generic_White || - shield.m_type == ftypes::RoadShieldType::Generic_Blue || shield.m_type == ftypes::RoadShieldType::Generic_Green || + shield.m_type == ftypes::RoadShieldType::Generic_Blue || shield.m_type == ftypes::RoadShieldType::Generic_Red || - shield.m_type == ftypes::RoadShieldType::Generic_Orange; + shield.m_type == ftypes::RoadShieldType::Generic_Orange || + shield.m_type == ftypes::RoadShieldType::Generic_White_Bordered || + shield.m_type == ftypes::RoadShieldType::Generic_Green_Bordered || + shield.m_type == ftypes::RoadShieldType::Generic_Blue_Bordered || + shield.m_type == ftypes::RoadShieldType::Generic_Red_Bordered || + shield.m_type == ftypes::RoadShieldType::Generic_Orange_Bordered || + shield.m_type == ftypes::RoadShieldType::UK_Highway; } -void UpdateRoadShieldTextFont(dp::FontDecl & font, ftypes::RoadShield const & shield) +bool IsColoredPillRoadShield(ftypes::RoadShield const & shield) { - font.m_outlineColor = dp::Color::Transparent(); - - using ftypes::RoadShieldType; - - static base::SmallMapBase kColors = { - {RoadShieldType::Generic_Green, kRoadShieldWhiteTextColor}, - {RoadShieldType::Generic_Blue, kRoadShieldWhiteTextColor}, - {RoadShieldType::UK_Highway, kRoadShieldUKYellowTextColor}, - {RoadShieldType::US_Interstate, kRoadShieldWhiteTextColor}, - {RoadShieldType::US_Highway, kRoadShieldBlackTextColor}, - {RoadShieldType::Generic_Red, kRoadShieldWhiteTextColor}, - {RoadShieldType::Generic_Orange, kRoadShieldBlackTextColor}}; - - if (auto const * cl = kColors.Find(shield.m_type); cl) - font.m_color = df::GetColorConstant(*cl); + return shield.m_type == ftypes::RoadShieldType::Generic_Pill_White || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_Green || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_Blue || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_Red || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_Orange || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_White_Bordered || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_Green_Bordered || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_Blue_Bordered || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_Red_Bordered || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_Orange_Bordered; } dp::Color GetRoadShieldColor(dp::Color const & baseColor, ftypes::RoadShield const & shield) @@ -251,9 +252,56 @@ dp::Color GetRoadShieldColor(dp::Color const & baseColor, ftypes::RoadShield con static base::SmallMapBase kColors = { {RoadShieldType::Generic_Green, kRoadShieldGreenBackgroundColor}, {RoadShieldType::Generic_Blue, kRoadShieldBlueBackgroundColor}, - {RoadShieldType::UK_Highway, kRoadShieldGreenBackgroundColor}, {RoadShieldType::Generic_Red, kRoadShieldRedBackgroundColor}, - {RoadShieldType::Generic_Orange, kRoadShieldOrangeBackgroundColor}}; + {RoadShieldType::Generic_Orange, kRoadShieldOrangeBackgroundColor}, + {RoadShieldType::Generic_Green_Bordered, kRoadShieldGreenBackgroundColor}, + {RoadShieldType::Generic_Blue_Bordered, kRoadShieldBlueBackgroundColor}, + {RoadShieldType::Generic_Red_Bordered, kRoadShieldRedBackgroundColor}, + {RoadShieldType::Generic_Orange_Bordered, kRoadShieldOrangeBackgroundColor}, + {RoadShieldType::Generic_Pill_Green, kRoadShieldGreenBackgroundColor}, + {RoadShieldType::Generic_Pill_Blue, kRoadShieldBlueBackgroundColor}, + {RoadShieldType::Generic_Pill_Red, kRoadShieldRedBackgroundColor}, + {RoadShieldType::Generic_Pill_Orange, kRoadShieldOrangeBackgroundColor}, + {RoadShieldType::Generic_Pill_Green_Bordered, kRoadShieldGreenBackgroundColor}, + {RoadShieldType::Generic_Pill_Blue_Bordered, kRoadShieldBlueBackgroundColor}, + {RoadShieldType::Generic_Pill_Red_Bordered, kRoadShieldRedBackgroundColor}, + {RoadShieldType::Generic_Pill_Orange_Bordered, kRoadShieldOrangeBackgroundColor}, + {RoadShieldType::UK_Highway, kRoadShieldGreenBackgroundColor}}; + + if (auto const * cl = kColors.Find(shield.m_type); cl) + return df::GetColorConstant(*cl); + + return baseColor; +} + +dp::Color GetRoadShieldTextColor(dp::Color const & baseColor, ftypes::RoadShield const & shield) +{ + using ftypes::RoadShieldType; + + static base::SmallMapBase kColors = { + {RoadShieldType::Generic_White, kRoadShieldBlackTextColor}, + {RoadShieldType::Generic_Green, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Blue, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Red, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Orange, kRoadShieldBlackTextColor}, + {RoadShieldType::Generic_White_Bordered, kRoadShieldBlackTextColor}, + {RoadShieldType::Generic_Green_Bordered, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Blue_Bordered, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Red_Bordered, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Orange_Bordered, kRoadShieldBlackTextColor}, + {RoadShieldType::Generic_Pill_White, kRoadShieldBlackTextColor}, + {RoadShieldType::Generic_Pill_Green, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Pill_Blue, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Pill_Red, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Pill_Orange, kRoadShieldBlackTextColor}, + {RoadShieldType::Generic_Pill_White_Bordered, kRoadShieldBlackTextColor}, + {RoadShieldType::Generic_Pill_Green_Bordered, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Pill_Blue_Bordered, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Pill_Red_Bordered, kRoadShieldWhiteTextColor}, + {RoadShieldType::Generic_Pill_Orange_Bordered, kRoadShieldBlackTextColor}, + {RoadShieldType::US_Interstate, kRoadShieldWhiteTextColor}, + {RoadShieldType::US_Highway, kRoadShieldBlackTextColor}, + {RoadShieldType::UK_Highway, kRoadShieldUKYellowTextColor}}; if (auto const * cl = kColors.Find(shield.m_type); cl) return df::GetColorConstant(*cl); @@ -263,8 +311,11 @@ dp::Color GetRoadShieldColor(dp::Color const & baseColor, ftypes::RoadShield con float GetRoadShieldOutlineWidth(float baseWidth, ftypes::RoadShield const & shield) { - if (shield.m_type == ftypes::RoadShieldType::UK_Highway || shield.m_type == ftypes::RoadShieldType::Generic_Blue || - shield.m_type == ftypes::RoadShieldType::Generic_Green || shield.m_type == ftypes::RoadShieldType::Generic_Red) + if (shield.m_type == ftypes::RoadShieldType::Generic_White || shield.m_type == ftypes::RoadShieldType::Generic_Green || + shield.m_type == ftypes::RoadShieldType::Generic_Blue || shield.m_type == ftypes::RoadShieldType::Generic_Red || + shield.m_type == ftypes::RoadShieldType::Generic_Orange || shield.m_type == ftypes::RoadShieldType::Generic_Pill_White || shield.m_type == ftypes::RoadShieldType::Generic_Pill_Green || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_Blue || shield.m_type == ftypes::RoadShieldType::Generic_Pill_Red || + shield.m_type == ftypes::RoadShieldType::Generic_Pill_Orange || shield.m_type == ftypes::RoadShieldType::UK_Highway) return 0.0f; return baseWidth; @@ -896,7 +947,8 @@ void ApplyLineFeatureAdditional::GetRoadShieldsViewParams(ref_ptr(1.0 * mainScale); } symbolParams.m_sizeInPixels = shieldPixelSize; + symbolParams.m_outlineColor = GetRoadShieldTextColor(symbolParams.m_outlineColor, shield); + symbolParams.m_outlineWidth = GetRoadShieldOutlineWidth(symbolParams.m_outlineWidth, shield); + symbolParams.m_color = GetRoadShieldColor(symbolParams.m_color, shield); + } + // A colored pill road shield. + if (IsColoredPillRoadShield(shield)) + { + FillCommonParams(symbolParams); + symbolParams.m_depthLayer = DepthLayer::OverlayLayer; + symbolParams.m_depthTestEnabled = true; + symbolParams.m_depth = m_shieldDepth; + symbolParams.m_anchor = anchor; + symbolParams.m_offset = shieldOffset; + symbolParams.m_shape = ColoredSymbolViewParams::Shape::RoundedRectangle; + symbolParams.m_radiusInPixels = static_cast(6.0 * mainScale); + symbolParams.m_color = ToDrapeColor(m_shieldRule->color()); + if (m_shieldRule->stroke_color() != m_shieldRule->color()) + { + symbolParams.m_outlineColor = ToDrapeColor(m_shieldRule->stroke_color()); + symbolParams.m_outlineWidth = static_cast(1.0 * mainScale); + } + symbolParams.m_sizeInPixels = shieldPixelSize; + symbolParams.m_outlineColor = GetRoadShieldTextColor(symbolParams.m_outlineColor, shield); symbolParams.m_outlineWidth = GetRoadShieldOutlineWidth(symbolParams.m_outlineWidth, shield); symbolParams.m_color = GetRoadShieldColor(symbolParams.m_color, shield); } @@ -1092,7 +1167,7 @@ void ApplyLineFeatureAdditional::ProcessAdditionalLineRules(PathTextRuleProto co m_insertShape(make_unique_dp(shieldPos, textParams, m_tileKey, m2::PointF(0.0f, 0.0f) /* symbolSize */, m2::PointF(0.0f, 0.0f) /* symbolOffset */, dp::Center /* symbolAnchor */, textIndex)); - if (IsColoredRoadShield(shield)) + if (IsColoredRoadShield(shield) || IsColoredPillRoadShield(shield)) m_insertShape(make_unique_dp(shieldPos, symbolParams, m_tileKey, textIndex)); else if (IsSymbolRoadShield(shield)) m_insertShape(make_unique_dp(shieldPos, poiParams, m_tileKey, textIndex)); diff --git a/libs/indexer/road_shields_parser.cpp b/libs/indexer/road_shields_parser.cpp index d9a7e2d9d..bbd471fda 100644 --- a/libs/indexer/road_shields_parser.cpp +++ b/libs/indexer/road_shields_parser.cpp @@ -55,14 +55,14 @@ std::unordered_map const kRoadNetworkShields = { {"by:national", RoadShieldType::Generic_Red}, // https://github.com/organicmaps/organicmaps/issues/3083 //{"by:regional", RoadShieldType::Generic_Red}, - {"co:national", RoadShieldType::Generic_White}, + {"co:national", RoadShieldType::Generic_White_Bordered}, {"cz:national", RoadShieldType::Generic_Red}, {"cz:regional", RoadShieldType::Generic_Blue}, // Estonia parser produces more specific shield types, incl. Generic_Orange. //{"ee:national", RoadShieldType::Generic_Red}, - //{"ee:regional", RoadShieldType::Generic_White}, + //{"ee:regional", RoadShieldType::Generic_White_Bordered}, {"in:ne", RoadShieldType::Generic_Blue}, - {"in:nh", RoadShieldType::Generic_Orange}, + {"in:nh", RoadShieldType::Generic_Orange_Bordered}, {"in:sh", RoadShieldType::Generic_Green}, {"fr:a-road", RoadShieldType::Generic_Red}, {"jp:national", RoadShieldType::Generic_Blue}, @@ -73,15 +73,15 @@ std::unordered_map const kRoadNetworkShields = { {"lv:national", RoadShieldType::Generic_Red}, {"lv:regional", RoadShieldType::Generic_Blue}, {"pl:national", RoadShieldType::Generic_Red}, - {"pl:regional", RoadShieldType::Generic_Orange}, - {"pl:local", RoadShieldType::Generic_White}, + {"pl:regional", RoadShieldType::Generic_Orange_Bordered}, + {"pl:local", RoadShieldType::Generic_White_Bordered}, {"ua:national", RoadShieldType::Generic_Blue}, {"ua:regional", RoadShieldType::Generic_Blue}, - {"ua:territorial", RoadShieldType::Generic_White}, - {"ua:local", RoadShieldType::Generic_White}, - {"za:national", RoadShieldType::Generic_White}, - {"za:regional", RoadShieldType::Generic_White}, - {"my:federal", RoadShieldType::Generic_Orange}, + {"ua:territorial", RoadShieldType::Generic_White_Bordered}, + {"ua:local", RoadShieldType::Generic_White_Bordered}, + {"za:national", RoadShieldType::Generic_White_Bordered}, + {"za:regional", RoadShieldType::Generic_White_Bordered}, + {"my:federal", RoadShieldType::Generic_Orange_Bordered}, // United States road networks. {"us:i", RoadShieldType::US_Interstate}, {"us:us", RoadShieldType::US_Highway}, @@ -102,7 +102,7 @@ public: if (network.size() == 5 && network.starts_with("US:")) { if (base::IsExist(kStatesCode, network.substr(3))) - return RoadShieldType::Generic_White; + return RoadShieldType::Generic_White_Bordered; } // Minimum length for the network tag is 4 (US:I). @@ -226,7 +226,7 @@ public: return RoadShield(RoadShieldType::US_Highway, roadNumber, additionalInfo); if (base::IsExist(kStatesCode, shieldParts[0])) - return RoadShield(RoadShieldType::Generic_White, roadNumber, additionalInfo); + return RoadShield(RoadShieldType::Generic_White_Bordered, roadNumber, additionalInfo); return RoadShield(RoadShieldType::Default, rawText); } @@ -433,10 +433,10 @@ class AustriaRoadShieldParser : public SimpleRoadShieldParser { public: explicit AustriaRoadShieldParser(std::string const & baseRoadNumber) - : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Blue}, - {"S", RoadShieldType::Generic_Blue}, + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Blue_Bordered}, + {"S", RoadShieldType::Generic_Blue_Bordered}, {"B", RoadShieldType::Generic_Blue}, - {"L", RoadShieldType::Generic_White}}) + {"L", RoadShieldType::Generic_Pill_White_Bordered}}) {} }; @@ -445,7 +445,7 @@ class BelgiumRoadShieldParser : public SimpleRoadShieldParser public: explicit BelgiumRoadShieldParser(std::string const & baseRoadNumber) : SimpleRoadShieldParser(baseRoadNumber, - {{"A", RoadShieldType::Generic_White}, {"N", RoadShieldType::Generic_Blue}}) + {{"A", RoadShieldType::Generic_White_Bordered}, {"N", RoadShieldType::Generic_Blue}}) {} }; @@ -464,8 +464,8 @@ public: explicit IrelandRoadShieldParser(std::string const & baseRoadNumber) : SimpleRoadShieldParser(baseRoadNumber, {{"M", RoadShieldType::Generic_Blue}, {"N", RoadShieldType::UK_Highway}, - {"R", RoadShieldType::Generic_White}, - {"L", RoadShieldType::Generic_White}}) + {"R", RoadShieldType::Generic_White_Bordered}, + {"L", RoadShieldType::Generic_White_Bordered}}) {} }; @@ -501,8 +501,8 @@ class PortugalRoadShieldParser : public SimpleRoadShieldParser public: explicit PortugalRoadShieldParser(std::string const & baseRoadNumber) : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Blue}, - {"N", RoadShieldType::Generic_White}, - {"EN", RoadShieldType::Generic_White}, + {"N", RoadShieldType::Generic_White_Bordered}, + {"EN", RoadShieldType::Generic_White_Bordered}, {"R", RoadShieldType::Generic_Orange}, {"EM", RoadShieldType::Generic_Orange}, {"CM", RoadShieldType::Generic_Orange}}) @@ -601,9 +601,9 @@ class GermanyRoadShieldParser : public SimpleRoadShieldParser public: explicit GermanyRoadShieldParser(std::string const & baseRoadNumber) : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Blue}, - {"B", RoadShieldType::Generic_Orange}, - {"L", RoadShieldType::Generic_White}, - {"K", RoadShieldType::Generic_White}}) + {"B", RoadShieldType::Generic_Orange_Bordered}, + {"L", RoadShieldType::Generic_White_Bordered}, + {"K", RoadShieldType::Generic_White_Bordered}}) {} }; @@ -646,7 +646,7 @@ public: explicit NetherlandsRoadShieldParser(std::string const & baseRoadNumber) : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Red}, {"E", RoadShieldType::Generic_Green}, - {"N", RoadShieldType::Generic_Orange}}) + {"N", RoadShieldType::Generic_Orange_Bordered}}) {} }; @@ -655,8 +655,8 @@ class FinlandRoadShieldParser : public NumericRoadShieldParser public: explicit FinlandRoadShieldParser(std::string const & baseRoadNumber) : NumericRoadShieldParser(baseRoadNumber, {{1, 30, RoadShieldType::Generic_Red}, - {40, 99, RoadShieldType::Generic_Orange}, - {100, 999, RoadShieldType::Generic_White}, + {40, 99, RoadShieldType::Generic_Orange_Bordered}, + {100, 999, RoadShieldType::Generic_White_Bordered}, {1000, 9999, RoadShieldType::Generic_Blue}, {10000, kAnyHigherRoadNumber, RoadShieldType::Hidden}}) {} @@ -667,10 +667,10 @@ class EstoniaRoadShieldParser : public NumericRoadShieldParser public: explicit EstoniaRoadShieldParser(std::string const & baseRoadNumber) : NumericRoadShieldParser(baseRoadNumber, {{1, 11, RoadShieldType::Generic_Red}, - {12, 91, RoadShieldType::Generic_Orange}, + {12, 91, RoadShieldType::Generic_Orange_Bordered}, {92, 92, RoadShieldType::Generic_Red}, - {93, 95, RoadShieldType::Generic_Orange}, - {96, 999, RoadShieldType::Generic_White}, + {93, 95, RoadShieldType::Generic_Orange_Bordered}, + {96, 999, RoadShieldType::Generic_White_Bordered}, {1000, kAnyHigherRoadNumber, RoadShieldType::Hidden}}) {} }; @@ -681,7 +681,7 @@ public: explicit MalaysiaRoadShieldParser(std::string const & baseRoadNumber) : SimpleRoadShieldParser(baseRoadNumber, {{"AH", RoadShieldType::Generic_Blue}, {"E", RoadShieldType::Generic_Blue}}, - RoadShieldType::Generic_Orange) + RoadShieldType::Generic_Orange_Bordered) {} }; @@ -689,19 +689,19 @@ class CyprusRoadShieldParser : public SimpleRoadShieldParser { public: explicit CyprusRoadShieldParser(std::string const & baseRoadNumber) - : SimpleRoadShieldParser(baseRoadNumber, { // North Cuprus. - {"D.", RoadShieldType::Generic_Blue}, // White font. - {"GM.", RoadShieldType::Generic_White}, // Blue font. - {"GZ.", RoadShieldType::Generic_White}, // Blue font. - {"GR.", RoadShieldType::Generic_White}, // Blue font. - {"LF.", RoadShieldType::Generic_White}, // Blue font. - {"İK.", RoadShieldType::Generic_White}, // Blue font. - // South Cyprus. - {"A", RoadShieldType::Generic_Green}, // Yellow font. Hexagon. - {"B", RoadShieldType::Generic_Blue}, // Yellow font. - {"E", RoadShieldType::Generic_Blue}, // Yellow font. - {"F", RoadShieldType::Generic_Blue}, // Yellow font. - {"U", RoadShieldType::Generic_Blue}}) // Yellow font. + : SimpleRoadShieldParser(baseRoadNumber, {// North Cyprus. + {"D.", RoadShieldType::Generic_Blue}, // White font. + {"GM.", RoadShieldType::Generic_White_Bordered}, // Blue font. + {"GZ.", RoadShieldType::Generic_White_Bordered}, // Blue font. + {"GR.", RoadShieldType::Generic_White_Bordered}, // Blue font. + {"LF.", RoadShieldType::Generic_White_Bordered}, // Blue font. + {"İK.", RoadShieldType::Generic_White_Bordered}, // Blue font. + // South Cyprus. + {"A", RoadShieldType::Generic_Green}, // Yellow font. Hexagon. + {"B", RoadShieldType::Generic_Blue}, // Yellow font. + {"E", RoadShieldType::Generic_Blue}, // Yellow font. + {"F", RoadShieldType::Generic_Blue}, // Yellow font. + {"U", RoadShieldType::Generic_Blue}}) // Yellow font. {} }; @@ -855,10 +855,25 @@ std::string DebugPrint(RoadShieldType shieldType) { case RoadShieldType::Default: return "default"; case RoadShieldType::Generic_White: return "white"; - case RoadShieldType::Generic_Blue: return "blue"; case RoadShieldType::Generic_Green: return "green"; - case RoadShieldType::Generic_Orange: return "orange"; + case RoadShieldType::Generic_Blue: return "blue"; case RoadShieldType::Generic_Red: return "red"; + case RoadShieldType::Generic_Orange: return "orange"; + case RoadShieldType::Generic_White_Bordered: return "white bordered"; + case RoadShieldType::Generic_Green_Bordered: return "green bordered"; + case RoadShieldType::Generic_Blue_Bordered: return "blue bordered"; + case RoadShieldType::Generic_Red_Bordered: return "red bordered"; + case RoadShieldType::Generic_Orange_Bordered: return "orange bordered"; + case RoadShieldType::Generic_Pill_White: return "white pill"; + case RoadShieldType::Generic_Pill_Green: return "green pill"; + case RoadShieldType::Generic_Pill_Blue: return "blue pill"; + case RoadShieldType::Generic_Pill_Red: return "red pill"; + case RoadShieldType::Generic_Pill_Orange: return "orange pill"; + case RoadShieldType::Generic_Pill_White_Bordered: return "white pill bordered"; + case RoadShieldType::Generic_Pill_Green_Bordered: return "green pill bordered"; + case RoadShieldType::Generic_Pill_Blue_Bordered: return "blue pill bordered"; + case RoadShieldType::Generic_Pill_Red_Bordered: return "red pill bordered"; + case RoadShieldType::Generic_Pill_Orange_Bordered: return "orange pill bordered"; case RoadShieldType::US_Interstate: return "US interstate"; case RoadShieldType::US_Highway: return "US highway"; case RoadShieldType::UK_Highway: return "UK highway"; diff --git a/libs/indexer/road_shields_parser.hpp b/libs/indexer/road_shields_parser.hpp index a7d62f881..5d6e5af23 100644 --- a/libs/indexer/road_shields_parser.hpp +++ b/libs/indexer/road_shields_parser.hpp @@ -18,6 +18,21 @@ enum class RoadShieldType Generic_Blue, Generic_Red, Generic_Orange, + Generic_White_Bordered, + Generic_Green_Bordered, + Generic_Blue_Bordered, + Generic_Red_Bordered, + Generic_Orange_Bordered, + Generic_Pill_White, + Generic_Pill_Green, + Generic_Pill_Blue, + Generic_Pill_Red, + Generic_Pill_Orange, + Generic_Pill_White_Bordered, + Generic_Pill_Green_Bordered, + Generic_Pill_Blue_Bordered, + Generic_Pill_Red_Bordered, + Generic_Pill_Orange_Bordered, US_Interstate, US_Highway, UK_Highway,