1#ifndef OSMSCOUT_FEATURE_ACCESS_FEATURE_H
2#define OSMSCOUT_FEATURE_ACCESS_FEATURE_H
210 void Read(FileScanner& scanner)
override;
211 void Write(FileWriter& writer)
override;
224 TagId tagAccessForward;
225 TagId tagAccessBackward;
228 TagId tagFootForward;
229 TagId tagFootBackward;
232 TagId tagBicycleForward;
233 TagId tagBicycleBackward;
235 TagId tagMotorVehicle;
236 TagId tagMotorVehicleForward;
237 TagId tagMotorVehicleBackward;
240 TagId tagMotorcarForward;
241 TagId tagMotorcarBackward;
248 void ParseAccessFlag(
const std::string_view& value,
252 access&=uint8_t(~bit);
254 if (!(value==
"no")) {
269 const TagRegistry& tagRegistry,
270 const FeatureInstance& feature,
271 const ObjectOSMRef&
object,
273 FeatureValueBuffer& buffer)
const override;
#define OSMSCOUT_API
Definition CoreImportExport.h:45
Definition AccessFeature.h:218
FeatureValue * AllocateValue(void *buffer) override
void Initialize(TagRegistry &tagRegistry) override
void Parse(TagErrorReporter &reporter, const TagRegistry &tagRegistry, const FeatureInstance &feature, const ObjectOSMRef &object, const TagMap &tags, FeatureValueBuffer &buffer) const override
size_t GetValueSize() const override
static const char *const NAME
Definition AccessFeature.h:245
size_t GetValueAlignment() const override
std::string GetName() const override
bool CanRouteForward(Vehicle vehicle) const
Definition AccessFeature.h:112
AccessFeatureValue()=default
AccessFeatureValue & operator=(const FeatureValue &other) override
bool IsOnewayBackward() const
Definition AccessFeature.h:205
bool CanRouteBicycle() const
Definition AccessFeature.h:163
bool CanRouteBackward() const
Definition AccessFeature.h:127
bool CanRouteBackward(Vehicle vehicle) const
Definition AccessFeature.h:132
void Write(FileWriter &writer) override
bool CanRouteCar() const
Definition AccessFeature.h:179
bool CanRouteForward() const
Definition AccessFeature.h:107
AccessFeatureValue(const AccessFeatureValue &other)=default
Access
Definition AccessFeature.h:33
@ carForward
Definition AccessFeature.h:38
@ bicycleBackward
Definition AccessFeature.h:37
@ footBackward
Definition AccessFeature.h:35
@ bicycleForward
Definition AccessFeature.h:36
@ onewayBackward
Definition AccessFeature.h:41
@ onewayForward
Definition AccessFeature.h:40
@ footForward
Definition AccessFeature.h:34
@ carBackward
Definition AccessFeature.h:39
bool CanRoute(Vehicle vehicle) const
Definition AccessFeature.h:72
bool CanRouteCarForward() const
Definition AccessFeature.h:185
bool CanRouteFootBackward() const
Definition AccessFeature.h:158
uint8_t GetAccess() const
Definition AccessFeature.h:62
bool CanRouteFootForward() const
Definition AccessFeature.h:153
void Read(FileScanner &scanner) override
void SetAccess(uint8_t access)
Definition AccessFeature.h:57
bool IsOnewayForward() const
Definition AccessFeature.h:200
bool CanRouteBicycleForward() const
Definition AccessFeature.h:169
bool operator==(const FeatureValue &other) const override
bool CanRouteFoot() const
Definition AccessFeature.h:147
bool CanRoute(VehicleMask vehicleMask) const
Definition AccessFeature.h:87
bool IsOneway() const
Definition AccessFeature.h:195
AccessFeatureValue(uint8_t access)
Definition AccessFeature.h:51
bool CanRouteBicycleBackward() const
Definition AccessFeature.h:174
bool CanRoute() const
Definition AccessFeature.h:67
bool CanRouteCarBackward() const
Definition AccessFeature.h:190
Definition TypeFeature.h:41
Definition FeatureReader.h:143
Definition TagErrorReporter.h:33
std::unordered_map< TagId, std::string > TagMap
Definition Tag.h:41
uint8_t VehicleMask
Definition OSMScoutTypes.h:61
Vehicle
Definition OSMScoutTypes.h:55
@ vehicleBicycle
Definition OSMScoutTypes.h:57
@ vehicleFoot
Definition OSMScoutTypes.h:56
@ vehicleCar
Definition OSMScoutTypes.h:58
FeatureValueReader< AccessFeature, AccessFeatureValue > AccessFeatureValueReader
Definition AccessFeature.h:276
uint16_t TagId
Definition Tag.h:39