Attribute.cpp
Go to the documentation of this file.
2 
3 #include <boost/lexical_cast.hpp>
4 #include <boost/variant/get.hpp>
5 #include <regex>
6 
9 
10 namespace lanelet {
11 namespace {
12 Optional<Velocity> getUnit(const std::string& value, size_t pos) {
13  using namespace units::literals;
14  if (pos >= value.size()) {
15  return 1._kmh;
16  }
17  auto unit = value.substr(pos);
18  const auto flags = std::regex::ECMAScript;
19  // try to match unit
20  if (std::regex_search(unit, std::regex("\\s*(m/s)|(mps)", flags))) {
21  return 1_mps;
22  }
23  if (std::regex_search(unit, std::regex("\\s*(km/h)|(kmh)", flags))) {
24  return 1_kmh;
25  }
26  if (std::regex_search(unit, std::regex("\\s*(m/h)|(mph)", flags))) {
27  return 1_mph;
28  }
29  return {};
30 }
31 
32 template <typename T>
33 T store(std::shared_ptr<Attribute::Cache>& cache, T&& value) {
34  auto newCache = std::make_shared<Attribute::Cache>(value);
35  std::atomic_store_explicit(&cache, newCache, std::memory_order_release);
36  return value;
37 }
38 
39 template <typename T>
40 T* load(const std::shared_ptr<Attribute::Cache>& cache) {
41  auto c = std::atomic_load_explicit(&cache, std::memory_order_acquire);
42  if (!c) {
43  return nullptr;
44  }
45  return boost::get<T>(&*cache);
46 }
47 } // namespace
48 
49 Attribute::Attribute(Id value) : value_(std::to_string(value)) { store(cache_, value); }
50 
51 Attribute::Attribute(bool value) : value_(std::to_string(int(value))) { store(cache_, value); }
52 
53 Attribute::Attribute(int value) : value_(std::to_string(value)) { store(cache_, value); }
54 
55 Attribute::Attribute(double value) : value_(std::to_string(value)) { store(cache_, value); }
56 
57 Attribute::Attribute(const Velocity& value) : value_{std::to_string(units::KmHQuantity(value).value())} {
58  store(cache_, value);
59 }
60 
62  // try load from cache
63  auto* val = load<bool>(cache_);
64  if (val != nullptr) {
65  return *val;
66  }
67  // need to compute value
68  try {
69  return boost::lexical_cast<bool>(value());
70  } catch (boost::bad_lexical_cast&) {
71  if (value() == "true" || value() == "yes") {
72  return store(cache_, true);
73  }
74  if (value() == "false" || value() == "no") {
75  return store(cache_, false);
76  }
77  return {};
78  }
79 }
80 
82  // try load from cache
83  auto* val = load<double>(cache_);
84  if (val != nullptr) {
85  return *val;
86  }
87  // need to compute value
88  try {
89  return store(cache_, boost::lexical_cast<double>(value()));
90  } catch (boost::bad_lexical_cast&) {
91  return {};
92  }
93 }
94 
96  // try load from cache
97  auto* val = load<Id>(cache_);
98  if (val != nullptr) {
99  return *val;
100  }
101  // need to compute value
102  try {
103  return store(cache_, boost::lexical_cast<Id>(value()));
104  } catch (boost::bad_lexical_cast&) {
105  return {};
106  }
107 }
108 
110  // try load from cache
111  auto* val = load<int>(cache_);
112  if (val != nullptr) {
113  return *val;
114  }
115  // need to compute value
116  try {
117  return store(cache_, boost::lexical_cast<int>(value()));
118  } catch (boost::bad_lexical_cast&) {
119  return {};
120  }
121 }
122 
124  // try load from cache
125  auto* val = load<Velocity>(cache_);
126  if (val != nullptr) {
127  return *val;
128  }
129  // need to compute value
130  auto asD = asDouble();
131  if (asD) {
132  // we assume kmh by default
133  return store(cache_, Velocity(*asD * units::KmH()));
134  }
135  // try to extract a unit (assuming something like "2 mps")
136  try {
137  size_t idx = 0;
138  const auto velocity = std::stod(value(), &idx);
139  auto unit = getUnit(value(), idx);
140  if (unit) {
141  return store(cache_, velocity * *unit);
142  }
143  } catch (std::exception&) {
144  }
145  // ok, give up
146  return {};
147 }
148 
149 void Attribute::setValue(const std::string& value) {
150  std::atomic_store_explicit(&cache_, std::shared_ptr<Cache>(), std::memory_order_release);
151  this->value_ = value;
152 }
153 
154 #if __cplusplus < 201703L
155 // see https://regexr.com/3knio
156 // lanelet types
157 constexpr const char AttributeValueString::Node[];
158 constexpr const char AttributeValueString::Way[];
159 constexpr const char AttributeValueString::Relation[];
160 constexpr const char AttributeValueString::Lanelet[];
161 constexpr const char AttributeValueString::RegulatoryElement[];
162 constexpr const char AttributeValueString::Multipolygon[];
163 
164 // line types
165 constexpr const char AttributeValueString::LineThick[];
166 constexpr const char AttributeValueString::LineThin[];
167 constexpr const char AttributeValueString::Curbstone[];
168 constexpr const char AttributeValueString::GuardRail[];
169 constexpr const char AttributeValueString::RoadBorder[];
170 constexpr const char AttributeValueString::Wall[];
171 constexpr const char AttributeValueString::Fence[];
172 constexpr const char AttributeValueString::Zebra[];
173 constexpr const char AttributeValueString::PedestrianMarking[];
174 constexpr const char AttributeValueString::BikeMarking[];
175 constexpr const char AttributeValueString::Keepout[];
176 constexpr const char AttributeValueString::StopLine[];
177 constexpr const char AttributeValueString::Virtual[];
178 constexpr const char AttributeValueString::Visualization[];
179 constexpr const char AttributeValueString::ZigZag[];
180 constexpr const char AttributeValueString::LiftGate[];
181 constexpr const char AttributeValueString::JerseyBarrier[];
182 constexpr const char AttributeValueString::Gate[];
183 constexpr const char AttributeValueString::Door[];
184 constexpr const char AttributeValueString::Trajectory[];
185 constexpr const char AttributeValueString::Rail[];
186 constexpr const char AttributeValueString::Bump[];
187 
188 // line subtypes
189 constexpr const char AttributeValueString::Solid[];
190 constexpr const char AttributeValueString::Dashed[];
191 constexpr const char AttributeValueString::DashedSolid[];
192 constexpr const char AttributeValueString::SolidDashed[];
193 constexpr const char AttributeValueString::SolidSolid[];
194 constexpr const char AttributeValueString::Straight[];
195 constexpr const char AttributeValueString::Left[];
196 constexpr const char AttributeValueString::Right[];
197 constexpr const char AttributeValueString::StraightLeft[];
198 constexpr const char AttributeValueString::StraightRight[];
199 constexpr const char AttributeValueString::LeftRight[];
200 constexpr const char AttributeValueString::High[];
201 constexpr const char AttributeValueString::Low[];
202 
203 // Node types
204 constexpr const char AttributeValueString::Arrow[];
205 constexpr const char AttributeValueString::Pole[];
206 constexpr const char AttributeValueString::Post[];
207 constexpr const char AttributeValueString::Symbol[];
208 constexpr const char AttributeValueString::Start[];
209 constexpr const char AttributeValueString::End[];
210 constexpr const char AttributeValueString::Dot[];
211 
212 // Color / traffic light types
213 constexpr const char AttributeValueString::RedYellowGreen[];
214 constexpr const char AttributeValueString::RedGreen[];
215 constexpr const char AttributeValueString::RedYellow[];
216 constexpr const char AttributeValueString::Red[];
217 constexpr const char AttributeValueString::Yellow[];
218 constexpr const char AttributeValueString::White[];
219 
220 // Lanelet types
221 constexpr const char AttributeValueString::Road[];
222 constexpr const char AttributeValueString::Highway[];
223 constexpr const char AttributeValueString::PlayStreet[];
224 constexpr const char AttributeValueString::BusLane[];
225 constexpr const char AttributeValueString::EmergencyLane[];
226 constexpr const char AttributeValueString::BicycleLane[];
227 constexpr const char AttributeValueString::Walkway[];
228 constexpr const char AttributeValueString::SharedWalkway[];
229 constexpr const char AttributeValueString::Crosswalk[];
230 constexpr const char AttributeValueString::Stairs[];
231 
232 // Lanelet location tag
233 constexpr const char AttributeValueString::Nonurban[];
234 constexpr const char AttributeValueString::Urban[];
235 constexpr const char AttributeValueString::Private[];
236 
237 // Area types
238 constexpr const char AttributeValueString::Parking[];
239 constexpr const char AttributeValueString::Freespace[];
240 constexpr const char AttributeValueString::Vegetation[];
241 constexpr const char AttributeValueString::Building[];
242 constexpr const char AttributeValueString::TrafficIsland[];
243 constexpr const char AttributeValueString::Exit[];
244 
245 // Regulatory elements
246 constexpr const char AttributeValueString::TrafficLight[];
247 constexpr const char AttributeValueString::TrafficSign[];
248 constexpr const char AttributeValueString::SpeedLimit[];
249 constexpr const char AttributeValueString::RightOfWay[];
250 constexpr const char AttributeValueString::AllWayStop[];
251 
252 // other
253 constexpr const char AttributeNamesString::Type[];
254 constexpr const char AttributeNamesString::Subtype[];
255 constexpr const char AttributeNamesString::OneWay[];
256 constexpr const char AttributeNamesString::ParticipantVehicle[];
257 constexpr const char AttributeNamesString::ParticipantPedestrian[];
258 constexpr const char AttributeNamesString::SpeedLimit[];
259 constexpr const char AttributeNamesString::Location[];
260 constexpr const char AttributeNamesString::Dynamic[];
261 constexpr const char AttributeNamesString::Color[];
262 
263 // attributes not used in fast lookup
264 // on points
265 constexpr const char AttributeNamesString::Ele[];
266 
267 // on linestrings
268 constexpr const char AttributeNamesString::LaneChange[];
269 constexpr const char AttributeNamesString::LaneChangeLeft[];
270 constexpr const char AttributeNamesString::LaneChangeRight[];
271 constexpr const char AttributeNamesString::Name[];
272 constexpr const char AttributeNamesString::Region[];
273 
274 // on lanelets/areas
275 constexpr const char AttributeNamesString::SpeedLimitMandatory[];
276 constexpr const char AttributeNamesString::Area[];
277 constexpr const char AttributeNamesString::Participant[];
278 constexpr const char AttributeNamesString::Fallback[];
279 constexpr const char AttributeNamesString::Width[];
280 constexpr const char AttributeNamesString::Height[];
281 constexpr const char AttributeNamesString::Temporary[];
282 
283 // on regulatory elements
284 constexpr const char AttributeNamesString::SignType[];
285 
286 // participants
287 constexpr const char Participants::Vehicle[];
288 constexpr const char Participants::VehicleBus[];
289 constexpr const char Participants::VehicleCar[];
290 constexpr const char Participants::VehicleCarElectric[];
291 constexpr const char Participants::VehicleCarCombustion[];
292 constexpr const char Participants::VehicleTruck[];
293 constexpr const char Participants::VehicleMotorcycle[];
294 constexpr const char Participants::VehicleTaxi[];
295 constexpr const char Participants::VehicleEmergency[];
296 constexpr const char Participants::Pedestrian[];
297 constexpr const char Participants::Bicycle[];
298 constexpr const char Participants::Train[];
299 
301 #endif
302 } // namespace lanelet
lanelet::Attribute::cache_
std::shared_ptr< Cache > cache_
cache for the last queried value
Definition: Attribute.h:106
lanelet::Attribute::asDouble
Optional< double > asDouble() const
interpret this attribute as double value
Definition: Attribute.cpp:81
lanelet::Velocity
units::MPSQuantity Velocity
Definition: Forward.h:210
lanelet::AttributeValueString::RedGreen
static constexpr const char RedGreen[]
Definition: Attribute.h:330
lanelet::AttributeValueString::LiftGate
static constexpr const char LiftGate[]
Definition: Attribute.h:296
lanelet::Participants::VehicleCar
static constexpr const char VehicleCar[]
Definition: Attribute.h:255
lanelet::AttributeValueString::Vegetation
static constexpr const char Vegetation[]
Definition: Attribute.h:356
lanelet::AttributeValueString::BicycleLane
static constexpr const char BicycleLane[]
Definition: Attribute.h:342
lanelet::AttributeValueString::StopLine
static constexpr const char StopLine[]
Definition: Attribute.h:292
lanelet::AttributeValueString::Bump
static constexpr const char Bump[]
Definition: Attribute.h:302
lanelet
Definition: Attribute.h:13
lanelet::AttributeValueString::StraightRight
static constexpr const char StraightRight[]
Definition: Attribute.h:314
lanelet::AttributeValueString::Freespace
static constexpr const char Freespace[]
Definition: Attribute.h:355
lanelet::AttributeValueString::JerseyBarrier
static constexpr const char JerseyBarrier[]
Definition: Attribute.h:297
lanelet::AttributeNamesString::LaneChange
static constexpr const char LaneChange[]
Definition: Attribute.h:219
lanelet::AttributeValueString::Yellow
static constexpr const char Yellow[]
Definition: Attribute.h:333
lanelet::Participants::VehicleEmergency
static constexpr const char VehicleEmergency[]
Definition: Attribute.h:261
lanelet::AttributeNamesString::SpeedLimit
static constexpr const char SpeedLimit[]
Definition: Attribute.h:209
lanelet::AttributeValueString::Zebra
static constexpr const char Zebra[]
Definition: Attribute.h:288
lanelet::Participants::Pedestrian
static constexpr const char Pedestrian[]
Definition: Attribute.h:262
lanelet::AttributeValueString::Highway
static constexpr const char Highway[]
Definition: Attribute.h:338
lanelet::AttributeValueString::RoadBorder
static constexpr const char RoadBorder[]
Definition: Attribute.h:285
lanelet::Participants::Train
static constexpr const char Train[]
Definition: Attribute.h:264
lanelet::AttributeValueString::White
static constexpr const char White[]
Definition: Attribute.h:334
lanelet::AttributeValueString::Right
static constexpr const char Right[]
Definition: Attribute.h:312
lanelet::AttributeValueString::LeftRight
static constexpr const char LeftRight[]
Definition: Attribute.h:315
lanelet::Attribute::asVelocity
Optional< Velocity > asVelocity() const
interpret this attribute as Velocity
Definition: Attribute.cpp:123
lanelet::AttributeValueString::Low
static constexpr const char Low[]
Definition: Attribute.h:317
lanelet::AttributeNamesString::Ele
static constexpr const char Ele[]
Definition: Attribute.h:216
lanelet::Participants::VehicleCarElectric
static constexpr const char VehicleCarElectric[]
Definition: Attribute.h:256
lanelet::AttributeValueString::AllWayStop
static constexpr const char AllWayStop[]
Definition: Attribute.h:366
lanelet::AttributeValueString::High
static constexpr const char High[]
Definition: Attribute.h:316
lanelet::AttributeValueString::PedestrianMarking
static constexpr const char PedestrianMarking[]
Definition: Attribute.h:289
lanelet::AttributeValueString::Left
static constexpr const char Left[]
Definition: Attribute.h:311
lanelet::AttributeValueString::LineThin
static constexpr const char LineThin[]
Definition: Attribute.h:282
lanelet::Id
int64_t Id
Definition: Forward.h:198
lanelet::AttributeNamesString::Region
static constexpr const char Region[]
Definition: Attribute.h:223
lanelet::AttributeValueString::RightOfWay
static constexpr const char RightOfWay[]
Definition: Attribute.h:365
lanelet::Participants::VehicleTruck
static constexpr const char VehicleTruck[]
Definition: Attribute.h:258
lanelet::AttributeValueString::ZigZag
static constexpr const char ZigZag[]
Definition: Attribute.h:295
lanelet::Attribute::value
const std::string & value() const
gets the value of this attribute
Definition: Attribute.h:96
lanelet::AttributeNamesString::Dynamic
static constexpr const char Dynamic[]
Definition: Attribute.h:211
lanelet::AttributeValueString::Building
static constexpr const char Building[]
Definition: Attribute.h:357
lanelet::AttributeValueString::PlayStreet
static constexpr const char PlayStreet[]
Definition: Attribute.h:339
lanelet::AttributeNamesString::Type
static constexpr const char Type[]
Definition: Attribute.h:204
lanelet::AttributeValueString::Door
static constexpr const char Door[]
Definition: Attribute.h:299
lanelet::units::KmH
boost::units::divide_typeof_helper< Km, Hour >::type KmH
Definition: Units.h:19
lanelet::AttributeValueString::RegulatoryElement
static constexpr const char RegulatoryElement[]
Definition: Attribute.h:277
lanelet::AttributeValueString::Parking
static constexpr const char Parking[]
Definition: Attribute.h:354
lanelet::AttributeValueString::Exit
static constexpr const char Exit[]
Definition: Attribute.h:359
lanelet::AttributeValueString::Gate
static constexpr const char Gate[]
Definition: Attribute.h:298
lanelet::Participants::VehicleBus
static constexpr const char VehicleBus[]
Definition: Attribute.h:254
lanelet::AttributeNamesString::SignType
static constexpr const char SignType[]
Definition: Attribute.h:235
lanelet::AttributeNamesString::ParticipantVehicle
static constexpr const char ParticipantVehicle[]
Definition: Attribute.h:207
lanelet::AttributeValueString::Trajectory
static constexpr const char Trajectory[]
Definition: Attribute.h:300
lanelet::AttributeValueString::TrafficLight
static constexpr const char TrafficLight[]
Definition: Attribute.h:362
lanelet::AttributeValueString::Walkway
static constexpr const char Walkway[]
Definition: Attribute.h:343
lanelet::AttributeValueString::Straight
static constexpr const char Straight[]
Definition: Attribute.h:310
lanelet::AttributeNamesString::LaneChangeRight
static constexpr const char LaneChangeRight[]
Definition: Attribute.h:221
lanelet::units::KmHQuantity
boost::units::quantity< KmH > KmHQuantity
Definition: Units.h:23
lanelet::AttributeValueString::Virtual
static constexpr const char Virtual[]
Definition: Attribute.h:293
lanelet::Optional
boost::optional< T > Optional
Definition: Optional.h:7
lanelet::AttributeValueString::Wall
static constexpr const char Wall[]
Definition: Attribute.h:286
lanelet::AttributeValueString::Multipolygon
static constexpr const char Multipolygon[]
Definition: Attribute.h:278
lanelet::AttributeNamesString::Map
static constexpr AttributeNamesItem Map[]
Definition: Attribute.h:237
lanelet::AttributeNamesString::Subtype
static constexpr const char Subtype[]
Definition: Attribute.h:205
lanelet::AttributeNamesString::Area
static constexpr const char Area[]
Definition: Attribute.h:228
lanelet::AttributeValueString::Dot
static constexpr const char Dot[]
Definition: Attribute.h:326
lanelet::AttributeValueString::Crosswalk
static constexpr const char Crosswalk[]
Definition: Attribute.h:345
lanelet::AttributeNamesString::Width
static constexpr const char Width[]
Definition: Attribute.h:230
lanelet::Attribute::asId
Optional< Id > asId() const
interpret this attribute as an id
Definition: Attribute.cpp:95
lanelet::AttributeNamesString::OneWay
static constexpr const char OneWay[]
Definition: Attribute.h:206
lanelet::AttributeValueString::EmergencyLane
static constexpr const char EmergencyLane[]
Definition: Attribute.h:340
lanelet::AttributeNamesString::Participant
static constexpr const char Participant[]
Definition: Attribute.h:227
lanelet::AttributeValueString::DashedSolid
static constexpr const char DashedSolid[]
Definition: Attribute.h:307
lanelet::Attribute::asBool
Optional< bool > asBool() const
interpret this attribute as bool value
Definition: Attribute.cpp:61
lanelet::AttributeValueString::End
static constexpr const char End[]
Definition: Attribute.h:325
lanelet::AttributeNamesString::Height
static constexpr const char Height[]
Definition: Attribute.h:231
lanelet::AttributeNamesString::LaneChangeLeft
static constexpr const char LaneChangeLeft[]
Definition: Attribute.h:220
lanelet::AttributeValueString::Fence
static constexpr const char Fence[]
Definition: Attribute.h:287
lanelet::AttributeNamesString::SpeedLimitMandatory
static constexpr const char SpeedLimitMandatory[]
Definition: Attribute.h:226
lanelet::AttributeValueString::Solid
static constexpr const char Solid[]
Definition: Attribute.h:305
lanelet::AttributeValueString::SharedWalkway
static constexpr const char SharedWalkway[]
Definition: Attribute.h:344
lanelet::AttributeValueString::Curbstone
static constexpr const char Curbstone[]
Definition: Attribute.h:283
lanelet::AttributeNamesString::Temporary
static constexpr const char Temporary[]
Definition: Attribute.h:232
lanelet::AttributeValueString::Arrow
static constexpr const char Arrow[]
Definition: Attribute.h:320
lanelet::AttributeValueString::SolidDashed
static constexpr const char SolidDashed[]
Definition: Attribute.h:308
lanelet::AttributeValueString::LineThick
static constexpr const char LineThick[]
Definition: Attribute.h:281
lanelet::AttributeValueString::SolidSolid
static constexpr const char SolidSolid[]
Definition: Attribute.h:309
lanelet::AttributeNamesString::Name
static constexpr const char Name[]
Definition: Attribute.h:222
lanelet::AttributeValueString::Stairs
static constexpr const char Stairs[]
Definition: Attribute.h:346
lanelet::AttributeValueString::Private
static constexpr const char Private[]
Definition: Attribute.h:351
lanelet::Attribute::Attribute
Attribute()=default
lanelet::Participants::Bicycle
static constexpr const char Bicycle[]
Definition: Attribute.h:263
Units.h
lanelet::Participants::Vehicle
static constexpr const char Vehicle[]
Definition: Attribute.h:253
lanelet::Participants::VehicleCarCombustion
static constexpr const char VehicleCarCombustion[]
Definition: Attribute.h:257
lanelet::AttributeValueString::Road
static constexpr const char Road[]
Definition: Attribute.h:337
lanelet::AttributeValueString::Nonurban
static constexpr const char Nonurban[]
Definition: Attribute.h:349
lanelet::AttributeValueString::Node
static constexpr const char Node[]
Definition: Attribute.h:273
lanelet::AttributeValueString::RedYellow
static constexpr const char RedYellow[]
Definition: Attribute.h:331
lanelet::AttributeNamesString::Fallback
static constexpr const char Fallback[]
Definition: Attribute.h:229
lanelet::AttributeValueString::Post
static constexpr const char Post[]
Definition: Attribute.h:322
lanelet::AttributeValueString::Red
static constexpr const char Red[]
Definition: Attribute.h:332
std
Definition: primitives/Area.h:369
lanelet::AttributeValueString::BusLane
static constexpr const char BusLane[]
Definition: Attribute.h:341
lanelet::AttributeValueString::Start
static constexpr const char Start[]
Definition: Attribute.h:324
lanelet::AttributeValueString::Urban
static constexpr const char Urban[]
Definition: Attribute.h:350
lanelet::AttributeNamesString::Color
static constexpr const char Color[]
Definition: Attribute.h:212
lanelet::AttributeValueString::Way
static constexpr const char Way[]
Definition: Attribute.h:274
lanelet::AttributeValueString::Keepout
static constexpr const char Keepout[]
Definition: Attribute.h:291
lanelet::AttributeValueString::GuardRail
static constexpr const char GuardRail[]
Definition: Attribute.h:284
lanelet::Participants::VehicleMotorcycle
static constexpr const char VehicleMotorcycle[]
Definition: Attribute.h:259
lanelet::AttributeNamesItem
std::pair< const char *, const AttributeName > AttributeNamesItem
Definition: Attribute.h:196
lanelet::AttributeValueString::Dashed
static constexpr const char Dashed[]
Definition: Attribute.h:306
lanelet::AttributeValueString::RedYellowGreen
static constexpr const char RedYellowGreen[]
Definition: Attribute.h:329
lanelet::AttributeValueString::Relation
static constexpr const char Relation[]
Definition: Attribute.h:275
lanelet::AttributeValueString::Lanelet
static constexpr const char Lanelet[]
Definition: Attribute.h:276
lanelet::AttributeValueString::Visualization
static constexpr const char Visualization[]
Definition: Attribute.h:294
lanelet::AttributeValueString::Symbol
static constexpr const char Symbol[]
Definition: Attribute.h:323
lanelet::AttributeValueString::BikeMarking
static constexpr const char BikeMarking[]
Definition: Attribute.h:290
lanelet::AttributeValueString::SpeedLimit
static constexpr const char SpeedLimit[]
Definition: Attribute.h:364
lanelet::Attribute::setValue
void setValue(const std::string &value)
set the value of this attribute
Definition: Attribute.cpp:149
lanelet::AttributeValueString::Pole
static constexpr const char Pole[]
Definition: Attribute.h:321
lanelet::AttributeValueString::TrafficIsland
static constexpr const char TrafficIsland[]
Definition: Attribute.h:358
Attribute.h
lanelet::Participants::VehicleTaxi
static constexpr const char VehicleTaxi[]
Definition: Attribute.h:260
lanelet::Attribute::value_
std::string value_
internal value of this parameter
Definition: Attribute.h:105
lanelet::AttributeValueString::TrafficSign
static constexpr const char TrafficSign[]
Definition: Attribute.h:363
Exceptions.h
lanelet::AttributeNamesString::Location
static constexpr const char Location[]
Definition: Attribute.h:210
lanelet::AttributeNamesString::ParticipantPedestrian
static constexpr const char ParticipantPedestrian[]
Definition: Attribute.h:208
lanelet::AttributeValueString::Rail
static constexpr const char Rail[]
Definition: Attribute.h:301
lanelet::AttributeValueString::StraightLeft
static constexpr const char StraightLeft[]
Definition: Attribute.h:313
lanelet::Attribute::asInt
Optional< int > asInt() const
interpret this attribute as an int
Definition: Attribute.cpp:109


lanelet2_core
Author(s): Fabian Poggenhans
autogenerated on Thu Mar 6 2025 03:25:52