1#ifndef OSMSCOUT_FEATURE_LANES_FEATURE_H
2#define OSMSCOUT_FEATURE_LANES_FEATURE_H
37 std::vector<LaneTurn> turnForward;
38 std::vector<LaneTurn> turnBackward;
39 std::string destinationForward;
40 std::string destinationBackward;
52 uint8_t backwardLanes)
54 this->lanes=((forwardLanes & uint8_t(0x7u)) << 2) |
55 ((backwardLanes & uint8_t(0x7u)) << 5);
65 return (lanes >> 2) & (uint8_t)0x07;
70 return (lanes >> 5) & (uint8_t)0x07;
76 const std::vector<LaneTurn>& turnBackward)
78 this->turnForward=turnForward;
79 this->turnBackward=turnBackward;
94 return destinationForward;
99 return destinationBackward;
103 const std::string_view& destinationBackward)
105 this->destinationForward=destinationForward;
106 this->destinationBackward=destinationBackward;
109 std::string
GetLabel(
const Locale &,
size_t )
const override
118 void Read(FileScanner& scanner)
override;
119 void Write(FileWriter& writer)
override;
130 TagId tagLanesForward=0;
131 TagId tagLanesBackward=0;
132 TagId tagTurnLanes=0;
133 TagId tagTurnLanesForward=0;
134 TagId tagTurnLanesBackward=0;
135 TagId tagDestinationLanes=0;
136 TagId tagDestinationLanesForward=0;
137 TagId tagDestinationLanesBackward=0;
160 const TagRegistry& tagRegistry,
161 const FeatureInstance& feature,
162 const ObjectOSMRef&
object,
164 FeatureValueBuffer& buffer)
const override;
#define OSMSCOUT_API
Definition CoreImportExport.h:45
Definition TypeFeature.h:41
Definition FeatureReader.h:143
void Parse(TagErrorReporter &reporter, const TagRegistry &tagRegistry, const FeatureInstance &feature, const ObjectOSMRef &object, const TagMap &tags, FeatureValueBuffer &buffer) const override
FeatureValue * AllocateValue(void *buffer) override
static const char *const NAME_LABEL
Definition LanesFeature.h:144
static const size_t NAME_LABEL_INDEX
Definition LanesFeature.h:147
std::string GetName() const override
size_t GetValueAlignment() const override
void Initialize(TagRegistry &tagRegistry) override
static const char *const NAME
Definition LanesFeature.h:141
size_t GetValueSize() const override
void Write(FileWriter &writer) override
LanesFeatureValue()=default
std::string GetDestinationForward() const
Definition LanesFeature.h:92
LanesFeatureValue & operator=(const FeatureValue &other) override
std::vector< LaneTurn > GetTurnBackward() const
Definition LanesFeature.h:87
uint8_t GetForwardLanes() const
Definition LanesFeature.h:63
bool operator==(const FeatureValue &other) const override
void Read(FileScanner &scanner) override
void SetLanes(uint8_t forwardLanes, uint8_t backwardLanes)
Definition LanesFeature.h:51
std::string GetDestinationBackward() const
Definition LanesFeature.h:97
std::string GetLabel(const Locale &, size_t) const override
Definition LanesFeature.h:109
LanesFeatureValue(uint8_t lanes)
Definition LanesFeature.h:45
void SetTurnLanes(const std::vector< LaneTurn > &turnForward, const std::vector< LaneTurn > &turnBackward)
Definition LanesFeature.h:75
void SetDestinationLanes(const std::string_view &destinationForward, const std::string_view &destinationBackward)
Definition LanesFeature.h:102
std::vector< LaneTurn > GetTurnForward() const
Definition LanesFeature.h:82
bool HasSingleLane() const
Definition LanesFeature.h:58
uint8_t GetBackwardLanes() const
Definition LanesFeature.h:68
Definition TagErrorReporter.h:33
std::unordered_map< TagId, std::string > TagMap
Definition Tag.h:41
FeatureValueReader< LanesFeature, LanesFeatureValue > LanesFeatureValueReader
Definition LanesFeature.h:167
uint16_t TagId
Definition Tag.h:39