From 7132ff2ed8050da6ae7de0fec32f375a9cde920e Mon Sep 17 00:00:00 2001 From: vikiawv Date: Fri, 24 Oct 2025 08:44:45 +0200 Subject: [PATCH] [styles] Adding highway hexagon road shields Signed-off-by: vikiawv --- .../shield-highway_hexagon_blue-scaled.svg | 84 +++++++++++++++++++ .../symbols/shield-highway_hexagon_blue.svg | 82 ++++++++++++++++++ .../shield-highway_hexagon_green-scaled.svg | 84 +++++++++++++++++++ .../symbols/shield-highway_hexagon_green.svg | 82 ++++++++++++++++++ .../shield-highway_hexagon_red-scaled.svg | 84 +++++++++++++++++++ .../symbols/shield-highway_hexagon_red.svg | 82 ++++++++++++++++++ .../shield-highway_hexagon_turkey-scaled.svg | 84 +++++++++++++++++++ .../symbols/shield-highway_hexagon_turkey.svg | 82 ++++++++++++++++++ .../shield-highway_hexagon_blue-scaled.svg | 84 +++++++++++++++++++ .../symbols/shield-highway_hexagon_blue.svg | 82 ++++++++++++++++++ .../shield-highway_hexagon_green-scaled.svg | 84 +++++++++++++++++++ .../symbols/shield-highway_hexagon_green.svg | 82 ++++++++++++++++++ .../shield-highway_hexagon_red-scaled.svg | 84 +++++++++++++++++++ .../symbols/shield-highway_hexagon_red.svg | 82 ++++++++++++++++++ .../shield-highway_hexagon_turkey-scaled.svg | 84 +++++++++++++++++++ .../symbols/shield-highway_hexagon_turkey.svg | 82 ++++++++++++++++++ .../drape_frontend/apply_feature_functors.cpp | 16 +++- libs/indexer/road_shields_parser.cpp | 27 ++++-- libs/indexer/road_shields_parser.hpp | 4 + 19 files changed, 1367 insertions(+), 8 deletions(-) create mode 100644 data/styles/default/dark/symbols/shield-highway_hexagon_blue-scaled.svg create mode 100644 data/styles/default/dark/symbols/shield-highway_hexagon_blue.svg create mode 100644 data/styles/default/dark/symbols/shield-highway_hexagon_green-scaled.svg create mode 100644 data/styles/default/dark/symbols/shield-highway_hexagon_green.svg create mode 100644 data/styles/default/dark/symbols/shield-highway_hexagon_red-scaled.svg create mode 100644 data/styles/default/dark/symbols/shield-highway_hexagon_red.svg create mode 100644 data/styles/default/dark/symbols/shield-highway_hexagon_turkey-scaled.svg create mode 100644 data/styles/default/dark/symbols/shield-highway_hexagon_turkey.svg create mode 100644 data/styles/default/light/symbols/shield-highway_hexagon_blue-scaled.svg create mode 100644 data/styles/default/light/symbols/shield-highway_hexagon_blue.svg create mode 100644 data/styles/default/light/symbols/shield-highway_hexagon_green-scaled.svg create mode 100644 data/styles/default/light/symbols/shield-highway_hexagon_green.svg create mode 100644 data/styles/default/light/symbols/shield-highway_hexagon_red-scaled.svg create mode 100644 data/styles/default/light/symbols/shield-highway_hexagon_red.svg create mode 100644 data/styles/default/light/symbols/shield-highway_hexagon_turkey-scaled.svg create mode 100644 data/styles/default/light/symbols/shield-highway_hexagon_turkey.svg diff --git a/data/styles/default/dark/symbols/shield-highway_hexagon_blue-scaled.svg b/data/styles/default/dark/symbols/shield-highway_hexagon_blue-scaled.svg new file mode 100644 index 000000000..027076e9d --- /dev/null +++ b/data/styles/default/dark/symbols/shield-highway_hexagon_blue-scaled.svg @@ -0,0 +1,84 @@ + + + + diff --git a/data/styles/default/dark/symbols/shield-highway_hexagon_blue.svg b/data/styles/default/dark/symbols/shield-highway_hexagon_blue.svg new file mode 100644 index 000000000..e218f1e31 --- /dev/null +++ b/data/styles/default/dark/symbols/shield-highway_hexagon_blue.svg @@ -0,0 +1,82 @@ + + + + diff --git a/data/styles/default/dark/symbols/shield-highway_hexagon_green-scaled.svg b/data/styles/default/dark/symbols/shield-highway_hexagon_green-scaled.svg new file mode 100644 index 000000000..7fb3ea282 --- /dev/null +++ b/data/styles/default/dark/symbols/shield-highway_hexagon_green-scaled.svg @@ -0,0 +1,84 @@ + + + + diff --git a/data/styles/default/dark/symbols/shield-highway_hexagon_green.svg b/data/styles/default/dark/symbols/shield-highway_hexagon_green.svg new file mode 100644 index 000000000..abea167f8 --- /dev/null +++ b/data/styles/default/dark/symbols/shield-highway_hexagon_green.svg @@ -0,0 +1,82 @@ + + + + diff --git a/data/styles/default/dark/symbols/shield-highway_hexagon_red-scaled.svg b/data/styles/default/dark/symbols/shield-highway_hexagon_red-scaled.svg new file mode 100644 index 000000000..6ec1fb4b4 --- /dev/null +++ b/data/styles/default/dark/symbols/shield-highway_hexagon_red-scaled.svg @@ -0,0 +1,84 @@ + + + + diff --git a/data/styles/default/dark/symbols/shield-highway_hexagon_red.svg b/data/styles/default/dark/symbols/shield-highway_hexagon_red.svg new file mode 100644 index 000000000..9e4880b2d --- /dev/null +++ b/data/styles/default/dark/symbols/shield-highway_hexagon_red.svg @@ -0,0 +1,82 @@ + + + + diff --git a/data/styles/default/dark/symbols/shield-highway_hexagon_turkey-scaled.svg b/data/styles/default/dark/symbols/shield-highway_hexagon_turkey-scaled.svg new file mode 100644 index 000000000..286b15efc --- /dev/null +++ b/data/styles/default/dark/symbols/shield-highway_hexagon_turkey-scaled.svg @@ -0,0 +1,84 @@ + + + + diff --git a/data/styles/default/dark/symbols/shield-highway_hexagon_turkey.svg b/data/styles/default/dark/symbols/shield-highway_hexagon_turkey.svg new file mode 100644 index 000000000..a1ee0ca4c --- /dev/null +++ b/data/styles/default/dark/symbols/shield-highway_hexagon_turkey.svg @@ -0,0 +1,82 @@ + + + + diff --git a/data/styles/default/light/symbols/shield-highway_hexagon_blue-scaled.svg b/data/styles/default/light/symbols/shield-highway_hexagon_blue-scaled.svg new file mode 100644 index 000000000..8ac20bdc1 --- /dev/null +++ b/data/styles/default/light/symbols/shield-highway_hexagon_blue-scaled.svg @@ -0,0 +1,84 @@ + + + + diff --git a/data/styles/default/light/symbols/shield-highway_hexagon_blue.svg b/data/styles/default/light/symbols/shield-highway_hexagon_blue.svg new file mode 100644 index 000000000..ce974bd45 --- /dev/null +++ b/data/styles/default/light/symbols/shield-highway_hexagon_blue.svg @@ -0,0 +1,82 @@ + + + + diff --git a/data/styles/default/light/symbols/shield-highway_hexagon_green-scaled.svg b/data/styles/default/light/symbols/shield-highway_hexagon_green-scaled.svg new file mode 100644 index 000000000..4b8b56b7e --- /dev/null +++ b/data/styles/default/light/symbols/shield-highway_hexagon_green-scaled.svg @@ -0,0 +1,84 @@ + + + + diff --git a/data/styles/default/light/symbols/shield-highway_hexagon_green.svg b/data/styles/default/light/symbols/shield-highway_hexagon_green.svg new file mode 100644 index 000000000..599e40dca --- /dev/null +++ b/data/styles/default/light/symbols/shield-highway_hexagon_green.svg @@ -0,0 +1,82 @@ + + + + diff --git a/data/styles/default/light/symbols/shield-highway_hexagon_red-scaled.svg b/data/styles/default/light/symbols/shield-highway_hexagon_red-scaled.svg new file mode 100644 index 000000000..9d9ed3043 --- /dev/null +++ b/data/styles/default/light/symbols/shield-highway_hexagon_red-scaled.svg @@ -0,0 +1,84 @@ + + + + diff --git a/data/styles/default/light/symbols/shield-highway_hexagon_red.svg b/data/styles/default/light/symbols/shield-highway_hexagon_red.svg new file mode 100644 index 000000000..d759a99b9 --- /dev/null +++ b/data/styles/default/light/symbols/shield-highway_hexagon_red.svg @@ -0,0 +1,82 @@ + + + + diff --git a/data/styles/default/light/symbols/shield-highway_hexagon_turkey-scaled.svg b/data/styles/default/light/symbols/shield-highway_hexagon_turkey-scaled.svg new file mode 100644 index 000000000..5b350efb6 --- /dev/null +++ b/data/styles/default/light/symbols/shield-highway_hexagon_turkey-scaled.svg @@ -0,0 +1,84 @@ + + + + diff --git a/data/styles/default/light/symbols/shield-highway_hexagon_turkey.svg b/data/styles/default/light/symbols/shield-highway_hexagon_turkey.svg new file mode 100644 index 000000000..58f3c6e8c --- /dev/null +++ b/data/styles/default/light/symbols/shield-highway_hexagon_turkey.svg @@ -0,0 +1,82 @@ + + + + diff --git a/libs/drape_frontend/apply_feature_functors.cpp b/libs/drape_frontend/apply_feature_functors.cpp index e2844af46..04462da7e 100644 --- a/libs/drape_frontend/apply_feature_functors.cpp +++ b/libs/drape_frontend/apply_feature_functors.cpp @@ -196,14 +196,22 @@ m2::PointF GetOffset(int offsetX, int offsetY) bool IsSymbolRoadShield(ftypes::RoadShield const & shield) { - return shield.m_type == ftypes::RoadShieldType::US_Interstate || shield.m_type == ftypes::RoadShieldType::US_Highway || shield.m_type == ftypes::RoadShieldType::Italy_Autostrada; + return shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Green || shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Blue || shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Red || shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Turkey || shield.m_type == ftypes::RoadShieldType::US_Interstate || shield.m_type == ftypes::RoadShieldType::US_Highway || shield.m_type == ftypes::RoadShieldType::Italy_Autostrada; } std::string GetRoadShieldSymbolName(ftypes::RoadShield const & shield, double fontScale) { ASSERT(IsSymbolRoadShield(shield), ()); std::string result = ""; - if (shield.m_type == ftypes::RoadShieldType::US_Interstate) + if (shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Green) + result = "shield-highway_hexagon_green"; + else if (shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Blue) + result = "shield-highway_hexagon_blue"; + else if (shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Red) + result = "shield-highway_hexagon_red"; + else if (shield.m_type == ftypes::RoadShieldType::Highway_Hexagon_Turkey) + result = "shield-highway_hexagon_turkey"; + else if (shield.m_type == ftypes::RoadShieldType::US_Interstate) result = shield.m_name.size() <= 2 ? "shield-us-i-thin" : "shield-us-i-wide"; else if (shield.m_type == ftypes::RoadShieldType::US_Highway) result = shield.m_name.size() <= 2 ? "shield-us-hw-thin" : "shield-us-hw-wide"; @@ -306,6 +314,10 @@ dp::Color GetRoadShieldTextColor(dp::Color const & baseColor, ftypes::RoadShield {RoadShieldType::Generic_Pill_Blue_Bordered, kRoadShieldWhiteTextColor}, {RoadShieldType::Generic_Pill_Red_Bordered, kRoadShieldWhiteTextColor}, {RoadShieldType::Generic_Pill_Orange_Bordered, kRoadShieldBlackTextColor}, + {RoadShieldType::Highway_Hexagon_Green, kRoadShieldWhiteTextColor}, + {RoadShieldType::Highway_Hexagon_Blue, kRoadShieldWhiteTextColor}, + {RoadShieldType::Highway_Hexagon_Red, kRoadShieldWhiteTextColor}, + {RoadShieldType::Highway_Hexagon_Turkey, kRoadShieldBlackTextColor}, {RoadShieldType::US_Interstate, kRoadShieldWhiteTextColor}, {RoadShieldType::US_Highway, kRoadShieldBlackTextColor}, {RoadShieldType::UK_Highway, kRoadShieldUKYellowTextColor}, diff --git a/libs/indexer/road_shields_parser.cpp b/libs/indexer/road_shields_parser.cpp index 2ce29e6dd..af8cfb325 100644 --- a/libs/indexer/road_shields_parser.cpp +++ b/libs/indexer/road_shields_parser.cpp @@ -454,7 +454,7 @@ class GreeceRoadShieldParser : public SimpleRoadShieldParser public: explicit GreeceRoadShieldParser(std::string const & baseRoadNumber) : SimpleRoadShieldParser(baseRoadNumber, - {{"Α", RoadShieldType::Generic_Green}, {"Ε", RoadShieldType::Generic_Blue}}) + {{"Α", RoadShieldType::Highway_Hexagon_Green}, {"Ε", RoadShieldType::Generic_Blue}}) {} }; @@ -480,6 +480,15 @@ public: {} }; +class TurkeyRoadShieldParser : public SimpleRoadShieldParser +{ +public: + explicit TurkeyRoadShieldParser(std::string const & baseRoadNumber) + : SimpleRoadShieldParser(baseRoadNumber, {{"O", RoadShieldType::Highway_Hexagon_Turkey}, + {"D", RoadShieldType::Generic_Blue}}) + {} +}; + class LativaRoadShieldParser : public SimpleRoadShieldParser { public: @@ -524,7 +533,7 @@ class SerbiaRoadShieldParser : public SimpleRoadShieldParser { public: explicit SerbiaRoadShieldParser(std::string const & baseRoadNumber) - : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Green}}) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Highway_Hexagon_Green}}) {} }; @@ -540,7 +549,7 @@ class SloveniaRoadShieldParser : public SimpleRoadShieldParser { public: explicit SloveniaRoadShieldParser(std::string const & baseRoadNumber) - : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Green}}) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Highway_Hexagon_Green}}) {} }; @@ -548,7 +557,7 @@ class SwitzerlandRoadShieldParser : public SimpleRoadShieldParser { public: explicit SwitzerlandRoadShieldParser(std::string const & baseRoadNumber) - : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Red}}) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Highway_Hexagon_Red}}) {} }; @@ -556,7 +565,7 @@ class LiechtensteinRoadShieldParser : public SimpleRoadShieldParser { public: explicit LiechtensteinRoadShieldParser(std::string const & baseRoadNumber) - : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Red}}) + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Highway_Hexagon_Red}}) {} }; @@ -600,7 +609,7 @@ class GermanyRoadShieldParser : public SimpleRoadShieldParser { public: explicit GermanyRoadShieldParser(std::string const & baseRoadNumber) - : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Generic_Blue}, + : SimpleRoadShieldParser(baseRoadNumber, {{"A", RoadShieldType::Highway_Hexagon_Blue}, {"B", RoadShieldType::Generic_Orange_Bordered}, {"L", RoadShieldType::Generic_White_Bordered}, {"K", RoadShieldType::Generic_White_Bordered}}) @@ -782,6 +791,8 @@ RoadShieldsSetT GetRoadShields(std::string const & mwmName, std::string const & return IrelandRoadShieldParser(roadNumber).GetRoadShields(); if (mwmName == "Italy") return ItalyRoadShieldParser(roadNumber).GetRoadShields(); + if (mwmName == "Turkey") + return TurkeyRoadShieldParser(roadNumber).GetRoadShields(); if (mwmName == "Lativa") return LativaRoadShieldParser(roadNumber).GetRoadShields(); if (mwmName == "Moldova") @@ -874,6 +885,10 @@ std::string DebugPrint(RoadShieldType shieldType) 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::Highway_Hexagon_Green: return "highway hexagon green"; + case RoadShieldType::Highway_Hexagon_Blue: return "highway hexagon blue"; + case RoadShieldType::Highway_Hexagon_Red: return "highway hexagon red"; + case RoadShieldType::Highway_Hexagon_Turkey: return "highway hexagon turkey"; 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 65653d31d..30c5eff85 100644 --- a/libs/indexer/road_shields_parser.hpp +++ b/libs/indexer/road_shields_parser.hpp @@ -33,6 +33,10 @@ enum class RoadShieldType Generic_Pill_Blue_Bordered, Generic_Pill_Red_Bordered, Generic_Pill_Orange_Bordered, + Highway_Hexagon_Green, + Highway_Hexagon_Blue, + Highway_Hexagon_Red, + Highway_Hexagon_Turkey, US_Interstate, US_Highway, UK_Highway,