LaneletMap.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <unordered_map>
4 
11 
12 namespace lanelet {
13 namespace internal {
14 template <typename T>
15 struct SearchBox {
17 };
18 template <>
19 struct SearchBox<Point3d> {
20  using Type = BasicPoint2d;
21 };
22 template <typename T>
23 using SearchBoxT = typename SearchBox<T>::Type;
24 } // namespace internal
38 template <typename T>
40  public:
41  using PrimitiveT = T;
43  using Map = std::unordered_map<Id, T>;
44  using ConstPrimitiveVec = std::vector<ConstPrimitiveT>;
45  using PrimitiveVec = std::vector<PrimitiveT>;
48 
50  using iterator = // NOLINT
52 
54  using const_iterator = // NOLINT
55  internal::TransformIterator<typename Map::const_iterator, const ConstPrimitiveT,
57  PrimitiveLayer(const PrimitiveLayer& rhs) = delete;
58  PrimitiveLayer& operator=(const PrimitiveLayer& rhs) = delete;
59 
65  bool exists(Id id) const;
66 
73  ConstPrimitiveT get(Id id) const;
74 
81  PrimitiveT get(Id id);
82 
91  const_iterator find(Id id) const;
92 
102  std::vector<ConstPrimitiveT> findUsages(
104 
110  std::vector<PrimitiveT> findUsages(const traits::ConstPrimitiveType<traits::OwnedT<PrimitiveT>>& primitive);
111 
116  const_iterator begin() const;
117 
122  const_iterator end() const;
123 
129  iterator find(Id id);
130 
135  iterator begin();
136 
141  iterator end();
142 
147  bool empty() const { return elements_.empty(); }
148 
153  size_t size() const { return elements_.size(); }
154 
155  using ConstSearchFunction = std::function<bool(const internal::SearchBoxT<T>& box, const ConstPrimitiveT& prim)>;
156  using SearchFunction = std::function<bool(const internal::SearchBoxT<T>& box, const PrimitiveT& prim)>;
157 
172  ConstPrimitiveVec search(const BoundingBox2d& area) const;
173  PrimitiveVec search(const BoundingBox2d& area);
174 
184  OptConstPrimitiveT searchUntil(const BoundingBox2d& area, const ConstSearchFunction& func) const;
185  OptPrimitiveT searchUntil(const BoundingBox2d& area, const SearchFunction& func);
186 
203  ConstPrimitiveVec nearest(const BasicPoint2d& point, unsigned n) const;
204  PrimitiveVec nearest(const BasicPoint2d& point, unsigned n);
205  ConstPrimitiveVec nearest(const Point2d& point, unsigned n) const { return nearest(point.basicPoint(), n); }
206  PrimitiveVec nearest(const Point2d& point, unsigned n) { return nearest(point.basicPoint(), n); }
207 
217  OptConstPrimitiveT nearestUntil(const BasicPoint2d& point, const ConstSearchFunction& func) const;
218  OptPrimitiveT nearestUntil(const BasicPoint2d& point, const SearchFunction& func);
220  return nearestUntil(point.basicPoint2d(), func);
221  }
222  OptPrimitiveT nearestUntil(const Point2d& point, const SearchFunction& func) {
223  return nearestUntil(point.basicPoint2d(), func);
224  }
225 
234  Id uniqueId() const;
235 
236  protected:
237  friend class LaneletMap; // only the map can create or modify layers
238  friend class LaneletMapLayers;
239  friend class LaneletSubmap;
240  explicit PrimitiveLayer(const Map& primitives = Map());
241  PrimitiveLayer(PrimitiveLayer&& rhs) noexcept;
242  PrimitiveLayer& operator=(PrimitiveLayer&& rhs) noexcept;
243  ~PrimitiveLayer() noexcept;
244 
245  void add(const PrimitiveT& element);
246  void remove(Id element);
247 
248  // NOLINTNEXTLINE
250  struct Tree;
251  // NOLINTNEXTLINE
252  std::unique_ptr<Tree> tree_;
253 };
254 
255 // we need this ifndef for LaneletMap.cpp
256 #ifndef LANELET_LAYER_DEFINITION
257 extern template class PrimitiveLayer<Area>;
258 extern template class PrimitiveLayer<Polygon3d>;
259 extern template class PrimitiveLayer<Lanelet>;
260 extern template class PrimitiveLayer<LineString3d>;
261 extern template class PrimitiveLayer<Point3d>;
262 extern template class PrimitiveLayer<RegulatoryElementPtr>;
263 #endif
264 
267  public:
269  AreaLayer() = default;
270  ~AreaLayer() = default;
271  AreaLayer(const AreaLayer&) = delete;
272  AreaLayer operator=(AreaLayer&) = delete;
274  ConstAreas findUsages(const RegulatoryElementConstPtr& regElem) const;
275 
276  private:
277  friend class LaneletMap;
278  friend class LaneletMapLayers;
279  friend class LaneletSubmap;
281  AreaLayer(AreaLayer&& rhs) noexcept = default;
282  AreaLayer& operator=(AreaLayer&& rhs) noexcept = default;
283 };
284 
287  public:
289  LaneletLayer() = default;
290  ~LaneletLayer() = default;
291  LaneletLayer(const LaneletLayer&) = delete;
294  ConstLanelets findUsages(const RegulatoryElementConstPtr& regElem) const;
295 
296  private:
297  friend class LaneletMap;
298  friend class LaneletMapLayers;
299  friend class LaneletSubmap;
301  LaneletLayer(LaneletLayer&& rhs) noexcept = default;
302  LaneletLayer& operator=(LaneletLayer&& rhs) noexcept = default;
303 };
304 
309 
314  public:
315  LaneletMapLayers() = default;
316  LaneletMapLayers(LaneletMapLayers&& rhs) noexcept = default;
317  LaneletMapLayers& operator=(LaneletMapLayers&& rhs) noexcept = default;
318  LaneletMapLayers(const LaneletMapLayers& rhs) = delete;
319  LaneletMapLayers& operator=(const LaneletMapLayers& rhs) = delete;
320  ~LaneletMapLayers() noexcept = default;
321 
337  LaneletMapLayers(const LaneletLayer::Map& lanelets, const AreaLayer::Map& areas,
338  const RegulatoryElementLayer::Map& regulatoryElements, const PolygonLayer::Map& polygons,
339  const LineStringLayer::Map& lineStrings, const PointLayer::Map& points);
340 
342  bool empty() const noexcept {
343  return laneletLayer.empty() && areaLayer.empty() && regulatoryElementLayer.empty() && polygonLayer.empty() &&
344  lineStringLayer.empty() && pointLayer.empty();
345  }
346 
348  size_t size() const noexcept {
349  return laneletLayer.size() + areaLayer.size() + regulatoryElementLayer.size() + polygonLayer.size() +
350  lineStringLayer.size() + pointLayer.size();
351  }
352 
359 };
360 
375 class LaneletMap : public LaneletMapLayers {
376  public:
378 
388  void add(Lanelet lanelet);
389 
399  void add(Area area);
400 
410  void add(const RegulatoryElementPtr& regElem);
411 
419  void add(Polygon3d polygon);
420 
428  void add(LineString3d lineString);
429 
437  void add(Point3d point);
438 };
439 
452  public:
453  LaneletSubmap() = default;
455 
457  explicit LaneletSubmap(LaneletMap&& rhs) noexcept : LaneletMapLayers{std::move(rhs)} {}
459  static_cast<LaneletMapLayers&>(*this) = std::move(rhs);
460  return *this;
461  }
462 
472  void add(Lanelet lanelet);
473 
475  void add(Area area);
476 
478  void add(const RegulatoryElementPtr& regElem);
479 
481  void add(Polygon3d polygon);
482 
484  void add(LineString3d lineString);
485 
487  void add(Point3d point);
488 
490  LaneletMapConstPtr laneletMap() const;
491  LaneletMapUPtr laneletMap();
492 
495  void trackParameters(const RegulatoryElement& regelem);
496 
497  private:
499  std::vector<boost::variant<ConstLanelet, ConstArea>> regelemObjects_;
500 };
501 
502 namespace utils {
503 template <typename PrimitiveT>
505 
507 LaneletMapUPtr createMap(const Points3d& fromPoints);
508 LaneletMapUPtr createMap(const LineStrings3d& fromLineStrings);
509 LaneletMapUPtr createMap(const Polygons3d& fromPolygons);
510 LaneletMapUPtr createMap(const Lanelets& fromLanelets);
511 LaneletMapUPtr createMap(const Areas& fromAreas);
512 LaneletMapUPtr createMap(const Lanelets& fromLanelets, const Areas& fromAreas);
513 LaneletMapConstUPtr createConstMap(const ConstLanelets& fromLanelets, const ConstAreas& fromAreas);
514 
516 LaneletSubmapUPtr createSubmap(const Points3d& fromPoints);
517 LaneletSubmapUPtr createSubmap(const LineStrings3d& fromLineStrings);
518 LaneletSubmapUPtr createSubmap(const Polygons3d& fromPolygons);
519 LaneletSubmapUPtr createSubmap(const Lanelets& fromLanelets);
520 LaneletSubmapUPtr createSubmap(const Areas& fromAreas);
521 LaneletSubmapUPtr createSubmap(const Lanelets& fromLanelets, const Areas& fromAreas);
522 LaneletSubmapConstUPtr createConstSubmap(const ConstLanelets& fromLanelets, const ConstAreas& fromAreas);
523 
535 Id getId();
536 
539 void registerId(Id id);
540 
541 template <typename PrimitiveT>
542 std::vector<ConstLayerPrimitive<PrimitiveT>> findUsages(const PrimitiveLayer<PrimitiveT>& layer, Id id);
543 
546 
547 } // namespace utils
548 
549 namespace traits {
550 template <typename T>
552  using Type = typename T::PrimitiveT;
553 };
554 template <typename T>
555 struct LayerPrimitive<const T> {
556  using Type = typename T::ConstPrimitiveT;
557 };
558 
559 template <typename T>
561 } // namespace traits
562 
563 namespace geometry {
578 template <typename PrimT>
579 std::vector<std::pair<double, PrimT>> findNearest(PrimitiveLayer<PrimT>& map, const BasicPoint2d& pt, unsigned count);
580 template <typename PrimT>
581 std::vector<std::pair<double, traits::ConstPrimitiveType<PrimT>>> findNearest(const PrimitiveLayer<PrimT>& map,
582  const BasicPoint2d& pt, unsigned count);
583 
584 #ifndef LANELET_LAYER_DEFINITION
585 // clang-format off
586 // NOLINTNEXTLINE
587 #define EXTERN_FIND_NEAREST(PRIM) extern template std::vector<std::pair<double, PRIM>> findNearest(PrimitiveLayer<PRIM>&, const BasicPoint2d&, unsigned)
588 // NOLINTNEXTLINE
589 #define EXTERN_CONST_FIND_NEAREST(PRIM) extern template std::vector<std::pair<double, traits::ConstPrimitiveType<PRIM>>> findNearest(const PrimitiveLayer<PRIM>&, const BasicPoint2d&, unsigned)
590 // clang-format on
591 EXTERN_FIND_NEAREST(Area);
592 EXTERN_FIND_NEAREST(Polygon3d);
593 EXTERN_FIND_NEAREST(Lanelet);
594 EXTERN_FIND_NEAREST(LineString3d);
595 EXTERN_FIND_NEAREST(Point3d);
598 EXTERN_CONST_FIND_NEAREST(Polygon3d);
600 EXTERN_CONST_FIND_NEAREST(LineString3d);
603 #undef EXTERN_FIND_NEAREST
604 #undef EXTERN_CONST_FIND_NEAREST
605 #endif
606 } // namespace geometry
607 
608 } // namespace lanelet
lanelet::LaneletMapLayers::laneletLayer
LaneletLayer laneletLayer
access to the lanelets within this map
Definition: LaneletMap.h:353
lanelet::utils::createConstSubmap
LaneletSubmapConstUPtr createConstSubmap(const ConstLanelets &fromLanelets, const ConstAreas &fromAreas)
Definition: LaneletMap.cpp:924
lanelet::LineStrings3d
std::vector< LineString3d > LineStrings3d
Definition: Forward.h:57
lanelet::LaneletLayer::LaneletMap
friend class LaneletMap
Definition: LaneletMap.h:297
lanelet::internal::PairConverter
Definition: TransformIterator.h:42
lanelet::PrimitiveLayer::search
ConstPrimitiveVec search(const BoundingBox2d &area) const
searches for elements within a search area
Definition: LaneletMap.cpp:500
lanelet::PrimitiveLayer::nearestUntil
OptPrimitiveT nearestUntil(const Point2d &point, const SearchFunction &func)
Definition: LaneletMap.h:222
lanelet::LaneletMapLayers::lineStringLayer
LineStringLayer lineStringLayer
access to the lineStrings
Definition: LaneletMap.h:357
lanelet::LaneletLayer::LaneletMapLayers
friend class LaneletMapLayers
Definition: LaneletMap.h:298
lanelet::utils::registerId
void registerId(Id id)
Definition: LaneletMap.cpp:885
lanelet::PrimitiveLayer::elements_
Map elements_
the list of elements in this layer
Definition: LaneletMap.h:249
lanelet::LaneletMapLayers::areaLayer
AreaLayer areaLayer
access to areas
Definition: LaneletMap.h:354
lanelet
Definition: Attribute.h:13
lanelet::RegulatoryElementPtr
std::shared_ptr< RegulatoryElement > RegulatoryElementPtr
Definition: Forward.h:192
lanelet::LaneletSubmap::operator=
LaneletSubmap & operator=(LaneletMap &&rhs)
Definition: LaneletMap.h:458
lanelet::PrimitiveLayer< RegulatoryElementPtr >::ConstPrimitiveVec
std::vector< ConstPrimitiveT > ConstPrimitiveVec
Definition: LaneletMap.h:44
lanelet::PrimitiveLayer::remove
void remove(Id element)
lanelet::LaneletMapLayers::pointLayer
PointLayer pointLayer
access to the points
Definition: LaneletMap.h:358
lanelet::utils::createMap
LaneletMapUPtr createMap(const Lanelets &fromLanelets, const Areas &fromAreas)
Definition: LaneletMap.cpp:824
p
BasicPoint p
Definition: LineStringGeometry.cpp:196
lanelet::utils::getId
Id getId()
returns a unique id by incrementing a counter each time this is called.
Definition: LaneletMap.cpp:883
lanelet::Point2d
A mutable 2d point.
Definition: primitives/Point.h:230
lanelet::LaneletMapLayers::empty
bool empty() const noexcept
Returns whether all layers of this object are empty.
Definition: LaneletMap.h:342
lanelet::PrimitiveLayer::nearest
ConstPrimitiveVec nearest(const BasicPoint2d &point, unsigned n) const
search for the n nearest elements to a point
Definition: LaneletMap.cpp:526
lanelet::LaneletMapLayers::polygonLayer
PolygonLayer polygonLayer
access to the polygons
Definition: LaneletMap.h:356
Area.h
lanelet::Id
int64_t Id
Definition: Forward.h:198
lanelet::LaneletMapConstPtr
std::shared_ptr< const LaneletMap > LaneletMapConstPtr
Definition: Forward.h:168
lanelet::LaneletSubmap::LaneletSubmap
LaneletSubmap(LaneletMap &&rhs) noexcept
Constructs a submap from a moved-from LaneletMap.
Definition: LaneletMap.h:457
lanelet::Lanelets
std::vector< Lanelet > Lanelets
Definition: Forward.h:113
lanelet::RegulatoryElement
A general rule or limitation for a lanelet (abstract base class)
Definition: primitives/RegulatoryElement.h:174
lanelet::PrimitiveLayer::LaneletMapLayers
friend class LaneletMapLayers
Definition: LaneletMap.h:238
lanelet::PrimitiveLayer< RegulatoryElementPtr >::PrimitiveVec
std::vector< PrimitiveT > PrimitiveVec
Definition: LaneletMap.h:45
lanelet::LaneletMapLayers::regulatoryElementLayer
RegulatoryElementLayer regulatoryElementLayer
access to regElems
Definition: LaneletMap.h:355
lanelet::ConstPoint2d::basicPoint2d
const BasicPoint2d & basicPoint2d() const noexcept
Definition: primitives/Point.h:186
lanelet::PrimitiveLayer::nearest
PrimitiveVec nearest(const Point2d &point, unsigned n)
Definition: LaneletMap.h:206
lanelet::PrimitiveLayer::add
void add(const PrimitiveT &element)
Definition: LaneletMap.cpp:383
lanelet::BoundingBox2d
Axis-Aligned bounding box in 2d.
Definition: primitives/BoundingBox.h:23
lanelet::PrimitiveLayer::get
ConstPrimitiveT get(Id id) const
returns an element for this id if it exists
Definition: LaneletMap.cpp:371
lanelet::Area
Famous Area class that represents a basic area as element of the map.
Definition: primitives/Area.h:206
lanelet::Polygons3d
std::vector< Polygon3d > Polygons3d
Definition: Forward.h:149
lanelet::LaneletMapUPtr
std::unique_ptr< LaneletMap > LaneletMapUPtr
Definition: Forward.h:167
lanelet::PrimitiveLayer::nearest
ConstPrimitiveVec nearest(const Point2d &point, unsigned n) const
Definition: LaneletMap.h:205
lanelet::ConstPoint3d
An immutable 3d point.
Definition: primitives/Point.h:202
lanelet::LaneletMap
Basic element for accessing and managing the elements of a map.
Definition: LaneletMap.h:375
lanelet::Optional
boost::optional< T > Optional
Definition: Optional.h:7
lanelet::Lanelet
The famous (mutable) lanelet class.
Definition: primitives/Lanelet.h:221
lanelet::LaneletMapLayers::LaneletMapLayers
LaneletMapLayers()=default
lanelet::PrimitiveLayer::~PrimitiveLayer
~PrimitiveLayer() noexcept
lanelet::internal::TransformIterator
Definition: TransformIterator.h:54
lanelet::PrimitiveLayer< RegulatoryElementPtr >::OptPrimitiveT
Optional< PrimitiveT > OptPrimitiveT
Definition: LaneletMap.h:47
lanelet::utils::findUsagesInAreas
ConstAreas findUsagesInAreas(const LaneletMapLayers &map, const ConstPoint3d &p)
Definition: LaneletMap.cpp:803
lanelet::PrimitiveLayer::find
const_iterator find(Id id) const
find returns an iterator to an element if it exists
Definition: LaneletMap.cpp:471
lanelet::Points3d
std::vector< Point3d > Points3d
Definition: Forward.h:34
lanelet::PrimitiveLayer::begin
const_iterator begin() const
iterator to beginning of the elements (not ordered by id!)
Definition: LaneletMap.cpp:476
lanelet::PrimitiveLayer< RegulatoryElementPtr >::Map
std::unordered_map< Id, RegulatoryElementPtr > Map
Definition: LaneletMap.h:43
lanelet::LaneletSubmapConstUPtr
std::unique_ptr< const LaneletSubmap > LaneletSubmapConstUPtr
Definition: Forward.h:178
lanelet::PrimitiveLayer
Each primitive in lanelet2 has its own layer in the map.
Definition: LaneletMap.h:39
lanelet::internal::SearchBoxT
typename SearchBox< T >::Type SearchBoxT
Definition: LaneletMap.h:23
lanelet::PrimitiveLayer< RegulatoryElementPtr >::ConstPrimitiveT
traits::ConstPrimitiveType< RegulatoryElementPtr > ConstPrimitiveT
Definition: LaneletMap.h:42
lanelet::AreaLayer::LaneletMap
friend class LaneletMap
Definition: LaneletMap.h:277
lanelet::LaneletSubmap::regelemObjects_
std::vector< boost::variant< ConstLanelet, ConstArea > > regelemObjects_
In order to not let lanelets/areas referenced by regelems get out of scope, we keep a reference to th...
Definition: LaneletMap.h:499
lanelet::PrimitiveLayer::LaneletSubmap
friend class LaneletSubmap
Definition: LaneletMap.h:239
lanelet::PrimitiveLayer::searchUntil
OptConstPrimitiveT searchUntil(const BoundingBox2d &area, const ConstSearchFunction &func) const
searches within search area until a search function returns true.
Definition: LaneletMap.cpp:514
lanelet::PrimitiveLayer::nearestUntil
OptConstPrimitiveT nearestUntil(const BasicPoint2d &point, const ConstSearchFunction &func) const
repeatedly calls a user-defined predicate until it returns true.
Definition: LaneletMap.cpp:541
lanelet::traits::LayerPrimitive
Definition: LaneletMap.h:551
lanelet::AreaLayer
Specialized map layer for Area.
Definition: LaneletMap.h:266
lanelet::traits::ConstPrimitiveType
typename PrimitiveTraits< PrimitiveT >::ConstType ConstPrimitiveType
Utility for determinig the matching const type for a primitive.
Definition: Traits.h:80
Utilities.h
lanelet::PrimitiveLayer::empty
bool empty() const
returns whether this layer contains something
Definition: LaneletMap.h:147
lanelet::PrimitiveLayer< RegulatoryElementPtr >::ConstSearchFunction
std::function< bool(const internal::SearchBoxT< RegulatoryElementPtr > &box, const ConstPrimitiveT &prim)> ConstSearchFunction
Definition: LaneletMap.h:155
lanelet::LaneletMapLayers
Container for all layers of a lanelet map. Used by both LaneletMap and LaneletSubmap.
Definition: LaneletMap.h:313
lanelet::BasicPoint2d
Eigen::Matrix< double, 2, 1, Eigen::DontAlign > BasicPoint2d
a simple 2d-point
Definition: primitives/Point.h:20
lanelet::RegulatoryElementConstPtr
std::shared_ptr< const RegulatoryElement > RegulatoryElementConstPtr
Definition: Forward.h:194
lanelet::traits::OwnedT
typename Owned< PrimitiveT >::Type OwnedT
Definition: Traits.h:76
lanelet::Point3d
A mutable 3d point.
Definition: primitives/Point.h:271
EXTERN_FIND_NEAREST
#define EXTERN_FIND_NEAREST(PRIM)
Definition: LaneletMap.h:587
lanelet::geometry::findNearest
std::vector< std::pair< double, traits::ConstPrimitiveType< PrimT > > > findNearest(const PrimitiveLayer< PrimT > &map, const BasicPoint2d &pt, unsigned count)
Definition: LaneletMap.cpp:992
lanelet::PrimitiveLayer::operator=
PrimitiveLayer & operator=(const PrimitiveLayer &rhs)=delete
lanelet::PrimitiveLayer::tree_
std::unique_ptr< Tree > tree_
Hides boost trees from you/the compiler.
Definition: LaneletMap.h:250
lanelet::utils::createConstMap
LaneletMapConstUPtr createConstMap(const ConstLanelets &fromLanelets, const ConstAreas &fromAreas)
Definition: LaneletMap.cpp:875
lanelet::LaneletLayer
Specialized map layer for Lanelet.
Definition: LaneletMap.h:286
lanelet::Areas
std::vector< Area > Areas
Definition: Forward.h:125
std
Definition: primitives/Area.h:369
lanelet::PrimitiveLayer::size
size_t size() const
returns number of elements in this layer
Definition: LaneletMap.h:153
lanelet::PrimitiveLayer::exists
bool exists(Id id) const
checks whether an element exists in this layer
Definition: LaneletMap.cpp:354
lanelet::utils::findUsagesInLanelets
ConstLanelets findUsagesInLanelets(const LaneletMapLayers &map, const ConstPoint3d &p)
Definition: LaneletMap.cpp:793
lanelet::utils::createSubmap
LaneletSubmapUPtr createSubmap(const Lanelets &fromLanelets, const Areas &fromAreas)
Definition: LaneletMap.cpp:912
lanelet::LaneletSubmap
A LaneletSubmap only contains the elemets that have be expleicitly added to it.
Definition: LaneletMap.h:451
BoundingBox.h
RegulatoryElement.h
lanelet::utils::ConstLayerPrimitive
typename PrimitiveLayer< PrimitiveT >::ConstPrimitiveT ConstLayerPrimitive
Definition: LaneletMap.h:504
lanelet::traits::LayerPrimitive::Type
typename T::PrimitiveT Type
Definition: LaneletMap.h:552
lanelet::PrimitiveLayer< RegulatoryElementPtr >::PrimitiveT
RegulatoryElementPtr PrimitiveT
Definition: LaneletMap.h:41
Lanelet.h
lanelet::Polygon3d
A mutable clockwise oriented, open (ie start point != end point) polygon in 3d.
Definition: primitives/Polygon.h:157
lanelet::AreaLayer::LaneletMapLayers
friend class LaneletMapLayers
Definition: LaneletMap.h:278
lanelet::PrimitiveLayer< RegulatoryElementPtr >::OptConstPrimitiveT
Optional< ConstPrimitiveT > OptConstPrimitiveT
Definition: LaneletMap.h:46
lanelet::LaneletSubmapUPtr
std::unique_ptr< LaneletSubmap > LaneletSubmapUPtr
Definition: Forward.h:176
lanelet::LaneletMapConstUPtr
std::unique_ptr< const LaneletMap > LaneletMapConstUPtr
Definition: Forward.h:169
EXTERN_CONST_FIND_NEAREST
#define EXTERN_CONST_FIND_NEAREST(PRIM)
Definition: LaneletMap.h:589
lanelet::PrimitiveLayer::findUsages
std::vector< ConstPrimitiveT > findUsages(const traits::ConstPrimitiveType< traits::OwnedT< PrimitiveT >> &primitive) const
finds usages of an owned type within this layer
lanelet::PrimitiveLayer::PrimitiveLayer
PrimitiveLayer(const PrimitiveLayer &rhs)=delete
Forward.h
lanelet::LaneletMapLayers::size
size_t size() const noexcept
Returns the total number of elements in all layers.
Definition: LaneletMap.h:348
lanelet::PrimitiveLayer::nearestUntil
OptConstPrimitiveT nearestUntil(const ConstPoint2d &point, const ConstSearchFunction &func) const
Definition: LaneletMap.h:219
lanelet::ConstAreas
std::vector< ConstArea > ConstAreas
Definition: Forward.h:126
lanelet::PrimitiveLayer::LaneletMap
friend class LaneletMap
Definition: LaneletMap.h:237
lanelet::LineString3d
A normal 3d linestring with mutable data.
Definition: primitives/LineString.h:538
lanelet::PrimitiveLayer::end
const_iterator end() const
iterator to end of the elements
Definition: LaneletMap.cpp:481
lanelet::traits::LayerPrimitive< const T >::Type
typename T::ConstPrimitiveT Type
Definition: LaneletMap.h:556
lanelet::Point2d::basicPoint
auto basicPoint() noexcept
get a mutable reference to the 2d point data
Definition: primitives/Point.h:251
lanelet::ConstPoint2d
An immutable 2d point.
Definition: primitives/Point.h:150
lanelet::internal::SearchBox
Definition: LaneletMap.h:15
lanelet::ConstLanelets
std::vector< ConstLanelet > ConstLanelets
Definition: Forward.h:114
lanelet::PrimitiveLayer< RegulatoryElementPtr >::SearchFunction
std::function< bool(const internal::SearchBoxT< RegulatoryElementPtr > &box, const PrimitiveT &prim)> SearchFunction
Definition: LaneletMap.h:156
lanelet::PrimitiveLayer::uniqueId
Id uniqueId() const
returns a unique id. it is guaranteed that the id is not used within this layer
Definition: LaneletMap.cpp:553
lanelet::internal::SearchBox< Point3d >::Type
BasicPoint2d Type
Definition: LaneletMap.h:20
lanelet::AreaLayer::LaneletSubmap
friend class LaneletSubmap
Definition: LaneletMap.h:279
lanelet::LaneletLayer::LaneletSubmap
friend class LaneletSubmap
Definition: LaneletMap.h:299
lanelet::traits::LayerPrimitiveType
typename LayerPrimitive< T >::Type LayerPrimitiveType
Definition: LaneletMap.h:560


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