1#ifndef OSMSCOUT_FEATURE_SIDEWAY_FEATURE_H
2#define OSMSCOUT_FEATURE_SIDEWAY_FEATURE_H
50 return (featureSet & (1<< flagIndex))!=0;
55 this->featureSet=featureSet;
88 void Read(FileScanner& scanner)
override;
89 void Write(FileWriter& writer)
override;
98 enum class FeatureFlags: uint8_t {
99 sidewalkTrackLeft = 0,
100 sidewalkTrackRight = 1,
101 cyclewayLaneLeft = 2,
102 cyclewayLaneRight = 3,
103 cyclewayTrackLeft = 4,
104 cyclewayTrackRight = 5
109 TagId tagCyclewayLeft;
110 TagId tagCyclewayLeftSegregated;
111 TagId tagCyclewayRight;
112 TagId tagCyclewayRightSegregated;
129 const TagRegistry& tagRegistry,
130 const FeatureInstance& feature,
131 const ObjectOSMRef&
object,
133 FeatureValueBuffer& buffer)
const override;
#define OSMSCOUT_API
Definition CoreImportExport.h:45
Definition TypeFeature.h:41
size_t GetValueAlignment() const override
std::string GetName() const override
void Initialize(TagRegistry &tagRegistry) override
static const char *const NAME
Definition SidewayFeature.h:116
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
size_t GetValueSize() const override
bool HasCyclewayTrackLeft() const
Definition SidewayFeature.h:78
Feature
Definition SidewayFeature.h:33
@ sidewalkTrackRight
Definition SidewayFeature.h:35
@ cyclewayTrackRight
Definition SidewayFeature.h:39
@ cyclewayTrackLeft
Definition SidewayFeature.h:38
@ sidewalkTrackLeft
Definition SidewayFeature.h:34
@ cyclewayLaneLeft
Definition SidewayFeature.h:36
@ cyclewayLaneRight
Definition SidewayFeature.h:37
void SetFeatureSet(uint8_t featureSet)
Definition SidewayFeature.h:53
SidewayFeatureValue & operator=(const FeatureValue &other) override
void Read(FileScanner &scanner) override
bool HasCyclewayLaneRight() const
Definition SidewayFeature.h:73
SidewayFeatureValue()=default
bool HasSidewalkTrackRight() const
Definition SidewayFeature.h:63
bool IsFlagSet(size_t flagIndex) const override
Definition SidewayFeature.h:48
bool HasCyclewayLaneLeft() const
Definition SidewayFeature.h:68
bool operator==(const FeatureValue &other) const override
bool HasCyclewayTrackRight() const
Definition SidewayFeature.h:83
void Write(FileWriter &writer) override
bool HasSidewalkTrackLeft() const
Definition SidewayFeature.h:58
Definition TagErrorReporter.h:33
std::unordered_map< TagId, std::string > TagMap
Definition Tag.h:41
uint16_t TagId
Definition Tag.h:39