[styles] Adding highway hexagon road shields

Signed-off-by: vikiawv <vikiawv@noreply.codeberg.org>
This commit is contained in:
vikiawv
2025-10-24 08:44:45 +02:00
committed by Yannik Bloscheck
parent 7312560f48
commit 7132ff2ed8
19 changed files with 1367 additions and 8 deletions

View File

@@ -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},

View File

@@ -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";

View File

@@ -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,