1#ifndef OSMSCOUT_STYLES_H
2#define OSMSCOUT_STYLES_H
104 bool preferColorFeature;
107 double displayOffset;
111 std::vector<double> dash;
143 return (displayWidth>0.0 ||
145 lineColor.IsVisible();
165 return preferColorFeature;
180 return displayOffset;
200 return !dash.empty();
226 const std::set<Attribute>& attributes);
300 mutable size_t patternId;
301 Magnification patternMinMag;
317 return (fillColor.IsVisible() ||
328 return !pattern.empty();
343 return patternMinMag;
349 const std::set<Attribute>& attributes);
381 std::vector<double> dash;
382 double displayOffset;
406 return width>0 && color.IsVisible();
431 return !dash.empty();
441 return displayOffset;
457 const std::set<Attribute>& attributes);
531 Color emphasizeColor;
533 Magnification scaleAndFadeMag;
566 return textColor.GetA();
591 return emphasizeColor;
601 return scaleAndFadeMag;
612 const std::set<Attribute>& attributes);
674 return textColor.GetA();
698 const std::set<Attribute>& attributes);
751 return shieldStyle->IsVisible();
756 return shieldStyle->GetAlpha();
761 return shieldStyle->GetPriority();
766 return shieldStyle->GetSize();
771 return shieldStyle->GetLabel();
776 return shieldStyle->GetTextColor();
781 return shieldStyle->GetBgColor();
786 return shieldStyle->GetBorderColor();
802 const std::set<Attribute>& attributes);
829 double displayOffset;
851 textColor.IsVisible();
871 return displayOffset;
887 const std::set<Attribute>& attributes);
910 std::string iconName;
942 return !iconName.empty() ||
984 const std::set<Attribute>& attributes);
1027 std::list<Vertex2D> coords;
1130 ProjectionMode projectionMode;
1131 std::list<DrawPrimitiveRef> primitives;
1132 ScreenBox mapBoundingBox;
1133 ScreenBox groundBoundingBox;
1134 double maxBorderWidth=0;
1149 return projectionMode;
1234 RenderMode renderMode=RenderMode::fixed;
1236 double symbolSpace=15.0;
1237 double displayOffset=0.0;
1260 return (
bool)symbol;
1290 return displayOffset!=0.0;
1295 return displayOffset;
1316 const std::set<Attribute>& attributes);
1329 AddEnumValue(
"fixed",(
int)PathSymbolStyle::RenderMode::fixed);
1330 AddEnumValue(
"scale",(
int)PathSymbolStyle::RenderMode::scale);
#define CLASS_FINAL
Definition Compiler.h:26
#define OSMSCOUT_MAP_API
Definition MapImportExport.h:45
bool operator!=(const LineStyle &other) const
TextStyle & SetAutoSize(bool autoSize)
double GetHeight(const Projection &projection) const
Definition Styles.h:1200
const Color & GetEmphasizeColor() const
Definition Styles.h:589
size_t GetPosition() const
Definition Styles.h:579
double GetWidth() const
Definition Styles.h:173
BorderStyle & SetWidth(double value)
RenderMode
Definition Styles.h:1216
const GeoCoord coord
Definition RouteStateAgent.h:49
PathSymbolStyle & SetOffsetRel(OffsetRel offsetRel)
double GetAlpha() const override
Definition Styles.h:564
void SetDoubleValue(int attribute, double value) override
OffsetRelAttributeDescriptor(const std::string &name, int attribute)
Definition Styles.h:250
PathSymbolStyle & SetScale(double scale)
PathTextStyle & SetTextColor(const Color &color)
void CopyAttributes(const TextStyle &other, const std::set< Attribute > &attributes)
PolygonPrimitive(const FillStyleRef &fillStyle, const BorderStyleRef &borderStyle)
bool IsOverlay() const
Definition Styles.h:976
BorderStyle & SetPriority(int priority)
bool GetPreferColorFeature() const
Definition Styles.h:163
TextStyle & SetTextColor(const Color &color)
size_t GetPatternId() const
Definition Styles.h:336
BorderStyle & SetDashes(const std::vector< double > &dashes)
double GetDisplayOffset() const
Definition Styles.h:178
bool HasPattern() const
Definition Styles.h:326
bool HasDisplayOffset() const
Definition Styles.h:1288
PathTextStyle & SetPriority(size_t value)
TextStyle & SetSlot(const std::string &slot)
void SetColorValue(int attribute, const Color &value) override
CirclePrimitive(const Vertex2D ¢er, double radius, const FillStyleRef &fillStyle, const BorderStyleRef &borderStyle)
PathSymbolStyle()=default
CapStyleEnumAttributeDescriptor(const std::string &name, int attribute)
Definition Styles.h:236
const Color & GetFillColor() const
Definition Styles.h:321
unsigned int GetWidth() const
Definition Styles.h:961
bool operator!=(const TextStyle &other) const
BorderStyle & SetGapColor(const Color &color)
TextStyleEnumAttributeDescriptor(const std::string &name, int attribute)
Definition Styles.h:622
TextStyle & SetScaleAndFadeMag(const Magnification &mag)
int GetPriority() const
Definition Styles.h:208
IconStyle & SetPriority(size_t priority)
void SetUIntValue(int attribute, size_t value) override
RenderModeEnumAttributeDescriptor(const std::string &name, int attribute)
Definition Styles.h:1324
FillStyle & SetPattern(const std::string &pattern)
std::string GetName() const
Definition Styles.h:1142
const std::list< DrawPrimitiveRef > & GetPrimitives() const
Definition Styles.h:1152
std::vector< Coord > coords
Optional coordinates for coastline.
Definition GroundTile.h:99
BorderStyle & SetDisplayOffset(double value)
LineStyle & SetDashes(const std::vector< double > &dashes)
double GetScale() const
Definition Styles.h:1278
bool operator<(const LineStyle &other) const
IconStyle & SetWidth(unsigned int w)
bool GetAutoSize() const
Definition Styles.h:604
bool HasOffset() const
Definition Styles.h:1298
const double & GetWidth() const
Definition Styles.h:1068
const LabelProviderRef & GetLabel() const
Definition Styles.h:574
size_t GetIconId() const
Definition Styles.h:956
LineStyle & SetPreferColorFeature(bool value)
PathSymbolStyle & SetOffset(double value)
const Magnification & GetPatternMinMag() const
Definition Styles.h:341
const Vertex2D & GetTopLeft() const
Definition Styles.h:1063
void CopyAttributes(const FillStyle &other, const std::set< Attribute > &attributes)
std::string GetIconName() const
Definition Styles.h:951
LineStyle & SetGapColor(const Color &color)
FillStyle & SetFillColor(const Color &color)
unsigned int GetHeight() const
Definition Styles.h:966
bool operator==(const LineStyle &other) const
CapStyle
Definition Styles.h:78
@ capRound
Definition Styles.h:80
@ capButt
Definition Styles.h:79
@ capSquare
Definition Styles.h:81
const std::list< Vertex2D > & GetCoords() const
Definition Styles.h:1035
LineStyle & SetPriority(int priority)
bool IsVisible() const override
Definition Styles.h:558
TextStyle & SetPosition(size_t position)
bool HasDashes() const
Definition Styles.h:198
const Color & GetTextColor() const
Definition Styles.h:584
CapStyle GetEndCap() const
Definition Styles.h:193
Attribute
Definition Styles.h:84
@ attrPatternMinMag
Definition Styles.h:294
@ attrScaleAndFadeMag
Definition Styles.h:522
@ attrGapColor
Definition Styles.h:86
@ attrSymbol
Definition Styles.h:901
@ attrLineColor
Definition Styles.h:85
@ attrOffset
Definition Styles.h:91
@ attrSymbolSpace
Definition Styles.h:1225
@ attrFillColor
Definition Styles.h:292
@ attrPosition
Definition Styles.h:518
@ attrIconName
Definition Styles.h:902
@ attrDisplayOffset
Definition Styles.h:90
@ attrZIndex
Definition Styles.h:96
@ attrEndCap
Definition Styles.h:93
@ attrAutoSize
Definition Styles.h:523
@ attrPriority
Definition Styles.h:95
@ attrColor
Definition Styles.h:367
@ attrEmphasizeColor
Definition Styles.h:520
@ attrOffsetRel
Definition Styles.h:97
@ attrPattern
Definition Styles.h:293
@ attrDashes
Definition Styles.h:94
@ attrPreferColorFeature
Definition Styles.h:87
@ attrSize
Definition Styles.h:516
@ attrDisplayWidth
Definition Styles.h:88
@ attrTextColor
Definition Styles.h:519
@ attrLabel
Definition Styles.h:517
@ attrScale
Definition Styles.h:1224
@ attrRenderMode
Definition Styles.h:1223
@ attrOverlay
Definition Styles.h:905
@ attrWidth
Definition Styles.h:89
@ attrJoinCap
Definition Styles.h:92
@ attrStyle
Definition Styles.h:521
PathTextStyle & SetLabel(const LabelProviderRef &label)
Symbol::ProjectionMode GetProjectionMode() const
Definition Styles.h:1147
void CopyAttributes(const LineStyle &other, const std::set< Attribute > &attributes)
PathSymbolStyle & SetSymbol(const SymbolRef &symbol)
std::string GetPatternName() const
Definition Styles.h:331
PathSymbolStyle & SetSlot(const std::string &slot)
bool operator==(const BorderStyle &other) const
const std::vector< double > & GetDash() const
Definition Styles.h:203
LineStyle & SetLineColor(const Color &color)
LineStyle & SetWidth(double value)
BorderStyle & SetSlot(const std::string &slot)
void SetSymbolValue(int attribute, const SymbolRef &value) override
PathSymbolStyle & SetSymbolSpace(double space)
const SymbolRef & GetSymbol() const
Definition Styles.h:946
void AddEnumValue2(const std::string &name, OffsetRel value)
Definition Styles.h:274
const Color & GetGapColor() const
Definition Styles.h:158
const double & GetHeight() const
Definition Styles.h:1073
RenderMode GetRenderMode() const
Definition Styles.h:1273
void CopyAttributes(const PathSymbolStyle &other, const std::set< Attribute > &attributes)
LineStyle & SetOffset(double value)
void SetDoubleArrayValue(int attribute, const std::vector< double > &value) override
bool IsVisible() const
Definition Styles.h:141
void SetMagnificationValue(int attribute, const Magnification &value) override
PathTextStyle & SetDisplayOffset(double value)
PathSymbolStyle & SetDisplayOffset(double value)
int GetZIndex() const
Definition Styles.h:213
double GetOffset() const
Definition Styles.h:183
static StyleDescriptorRef GetDescriptor()
ScreenBox GetBoundingBox() const override
PathSymbolStyle & SetRenderMode(RenderMode renderMode)
LineStyle & SetEndCap(CapStyle endCap)
IconStyle & SetPosition(size_t position)
size_t GetPriority() const
Definition Styles.h:879
void SetIntValue(int attribute, int value) override
bool operator<(const BorderStyle &other) const
IconStyle & SetSymbol(const SymbolRef &symbol)
BorderStyle & SetColor(const Color &color)
OffsetRel GetOffsetRel() const
Definition Styles.h:218
TextStyle & SetSize(double size) override
CapStyle GetJoinCap() const
Definition Styles.h:188
IconStyle & SetHeight(unsigned int h)
bool operator<(const FillStyle &other) const
void SetStringValue(int attribute, const std::string &value) override
void CopyAttributes(const BorderStyle &other, const std::set< Attribute > &attributes)
double GetSymbolSpace() const
Definition Styles.h:1283
const Color & GetLineColor() const
Definition Styles.h:153
void SetLabelValue(int attribute, const LabelProviderRef &value) override
bool operator!=(const BorderStyle &other) const
double GetDisplayWidth() const
Definition Styles.h:168
FillStyle & SetPatternMinMag(const Magnification &mag)
TextStyle & SetEmphasizeColor(const Color &color)
void CopyAttributes(const IconStyle &other, const std::set< Attribute > &attributes)
TextStyle & SetStyle(Style style)
bool operator!=(const FillStyle &other) const
ScreenBox GetBoundingBox(const Projection &projection) const
Definition Styles.h:1160
LineStyle & SetJoinCap(CapStyle joinCap)
LineStyle & SetZIndex(int zIndex)
double GetWidth(const Projection &projection) const
Definition Styles.h:1191
Magnification GetScaleAndFadeMag() const
Definition Styles.h:599
bool operator==(const TextStyle &other) const
IconStyle & SetIconName(const std::string &iconName)
const Vertex2D & GetCenter() const
Definition Styles.h:1099
const Style & GetStyle() const
Definition Styles.h:594
LineStyle & SetSlot(const std::string &slot)
void CopyAttributes(const PathTextStyle &other, const std::set< Attribute > &attributes)
ProjectionMode
Definition Styles.h:1123
@ GROUND
Definition Styles.h:1125
LineStyle & SetDisplayOffset(double value)
void AddCoord(const Vertex2D &coord)
const Color & GetColor() const
Definition Styles.h:414
bool operator<(const TextStyle &other) const
LineStyle & SetOffsetRel(OffsetRel offsetRel)
const std::string & GetSlot() const
Definition Styles.h:148
double GetSize() const
Definition Styles.h:859
Symbol(const std::string &name, ProjectionMode projectionMode)
TextStyle & SetLabel(const LabelProviderRef &label)
void AddPrimitive(const DrawPrimitiveRef &primitive)
void SetBoolValue(int attribute, bool value) override
bool operator==(const FillStyle &other) const
IconStyle & SetOverlay(bool overlay)
const double & GetRadius() const
Definition Styles.h:1104
double GetMaxBorderWidth(const Projection &projection) const
Definition Styles.h:1183
Style
Definition Styles.h:509
@ emphasize
Definition Styles.h:511
@ normal
Definition Styles.h:510
void SetPatternId(size_t id) const
IconStyle & SetIconId(size_t id)
PathTextStyle & SetSize(double size)
RectanglePrimitive(const Vertex2D &topLeft, double width, double height, const FillStyleRef &fillStyle, const BorderStyleRef &borderStyle)
PathTextStyle & SetOffset(double value)
BorderStyle & SetOffset(double value)
LineStyle & SetDisplayWidth(double value)
const BorderStyleRef & GetBorderStyle() const
Definition Styles.h:1010
DrawPrimitive(const FillStyleRef &fillStyle, const BorderStyleRef &borderStyle)
virtual ~DrawPrimitive()=default
const FillStyleRef & GetFillStyle() const
Definition Styles.h:1005
virtual ScreenBox GetBoundingBox() const =0
virtual bool IsVisible() const =0
LabelStyle & SetPriority(size_t priority)
size_t GetPriority() const
Definition Styles.h:488
double GetSize() const
Definition Styles.h:493
virtual double GetAlpha() const =0
virtual LabelStyle & SetSize(double size)
PathShieldStyle & SetLabel(const LabelProviderRef &label)
double GetAlpha() const
Definition Styles.h:754
const Color & GetTextColor() const
Definition Styles.h:774
PathShieldStyle(const PathShieldStyle &style)
PathShieldStyle & operator=(const PathShieldStyle &style)=delete
double GetShieldSpace() const
Definition Styles.h:789
const ShieldStyleRef & GetShieldStyle() const
Definition Styles.h:794
bool IsVisible() const
Definition Styles.h:749
void SetLabelValue(int attribute, const LabelProviderRef &value) override
PathShieldStyle & SetSize(double size)
PathShieldStyle(const PathShieldStyle &&style)
Attribute
Definition Styles.h:713
@ attrBgColor
Definition Styles.h:718
@ attrShieldSpace
Definition Styles.h:720
@ attrSize
Definition Styles.h:715
@ attrLabel
Definition Styles.h:716
@ attrPriority
Definition Styles.h:714
@ attrBorderColor
Definition Styles.h:719
@ attrTextColor
Definition Styles.h:717
double GetSize() const
Definition Styles.h:764
void CopyAttributes(const PathShieldStyle &other, const std::set< Attribute > &attributes)
static StyleDescriptorRef GetDescriptor()
void SetColorValue(int attribute, const Color &value) override
PathShieldStyle & SetTextColor(const Color &color)
PathShieldStyle & SetShieldSpace(double shieldSpace)
const Color & GetBorderColor() const
Definition Styles.h:784
size_t GetPriority() const
Definition Styles.h:759
void SetUIntValue(int attribute, size_t value) override
PathShieldStyle & operator=(const PathShieldStyle &&style)=delete
const LabelProviderRef & GetLabel() const
Definition Styles.h:769
PathShieldStyle & SetPriority(size_t priority)
const Color & GetBgColor() const
Definition Styles.h:779
PathShieldStyle & SetBorderColor(const Color &color)
PathShieldStyle & SetBgColor(const Color &color)
void SetDoubleValue(int attribute, double value) override
Definition Projection.h:46
double GetMeterInPixel() const
Definition Projection.h:271
double ConvertWidthToPixel(double width) const
Definition Projection.h:292
ShieldStyle & SetBorderColor(const Color &color)
const LabelProviderRef & GetLabel() const
Definition Styles.h:677
const Color & GetBorderColor() const
Definition Styles.h:692
const Color & GetTextColor() const
Definition Styles.h:682
bool IsVisible() const override
Definition Styles.h:666
ShieldStyle & SetSize(double size) override
const Color & GetBgColor() const
Definition Styles.h:687
void CopyAttributes(const ShieldStyle &other, const std::set< Attribute > &attributes)
double GetAlpha() const override
Definition Styles.h:672
ShieldStyle & SetBgColor(const Color &color)
ShieldStyle & SetLabel(const LabelProviderRef &label)
Attribute
Definition Styles.h:642
@ attrTextColor
Definition Styles.h:646
@ attrBorderColor
Definition Styles.h:648
@ attrLabel
Definition Styles.h:645
@ attrSize
Definition Styles.h:644
@ attrPriority
Definition Styles.h:643
@ attrBgColor
Definition Styles.h:647
ShieldStyle & SetTextColor(const Color &color)
Definition StyleDescription.h:232
StyleEnumAttributeDescriptor(const std::string &name, int attribute)
Definition StyleDescription.h:240
void AddEnumValue(const std::string &name, int value)
Definition StyleDescription.h:250
Definition StyleDescription.h:52
LaneTurn
Definition LaneTurn.h:47
std::shared_ptr< TextStyle > TextStyleRef
Definition Styles.h:632
std::shared_ptr< PolygonPrimitive > PolygonPrimitiveRef
Definition Styles.h:1043
std::shared_ptr< PathTextStyle > PathTextStyleRef
Definition Styles.h:890
std::shared_ptr< StyleDescriptor > StyleDescriptorRef
Definition StyleDescription.h:498
std::shared_ptr< RectanglePrimitive > RectanglePrimitiveRef
Definition Styles.h:1081
std::shared_ptr< Symbol > SymbolRef
Definition StyleDescription.h:37
std::shared_ptr< PathSymbolStyle > PathSymbolStyleRef
Definition Styles.h:1319
bool IsLaneOffset(OffsetRel rel)
std::shared_ptr< LabelProvider > LabelProviderRef
Definition LabelProvider.h:60
std::shared_ptr< ShieldStyle > ShieldStyleRef
Definition Styles.h:701
std::shared_ptr< BorderStyle > BorderStyleRef
Definition Styles.h:464
OffsetRel ParseForwardTurnStringToOffset(LaneTurn turn)
OffsetRel ParseBackwardTurnStringToOffset(LaneTurn turn)
std::shared_ptr< LineStyle > LineStyleRef
Definition Styles.h:281
std::shared_ptr< DrawPrimitive > DrawPrimitiveRef
Definition Styles.h:1018
std::shared_ptr< LabelStyle > LabelStyleRef
Definition Styles.h:499
std::shared_ptr< FillStyle > FillStyleRef
Definition Styles.h:356
std::shared_ptr< IconStyle > IconStyleRef
Definition Styles.h:987
OffsetRel
Definition Styles.h:44
@ laneBackwardThroughLeft
Definition Styles.h:57
@ laneForwardThroughLeft
Definition Styles.h:52
@ laneDivider
when way has multiple lanes, line is rendered as its divider
Definition Styles.h:48
@ laneForwardThroughRight
Definition Styles.h:54
@ laneBackwardThrough
Definition Styles.h:58
@ base
way center
Definition Styles.h:45
@ laneForwardLeft
Definition Styles.h:51
@ leftOutline
left side of the way
Definition Styles.h:46
@ laneForwardThrough
Definition Styles.h:53
@ sidecar
special offset for routes, line are stacked next to way, same colors are "collapsed"
Definition Styles.h:62
@ rightOutline
right side of the way
Definition Styles.h:47
@ laneBackwardRight
Definition Styles.h:60
@ laneForwardRight
Definition Styles.h:55
@ laneBackwardLeft
Definition Styles.h:56
@ laneBackwardThroughRight
Definition Styles.h:59
std::shared_ptr< PathShieldStyle > PathShieldStyleRef
Definition Styles.h:805
std::shared_ptr< CirclePrimitive > CirclePrimitiveRef
Definition Styles.h:1112