Forward.h
Go to the documentation of this file.
1 #pragma once
2 #include <boost/units/physical_dimensions/acceleration.hpp>
3 #include <boost/units/physical_dimensions/velocity.hpp>
4 #include <boost/units/quantity.hpp>
5 #include <boost/units/systems/si/base.hpp>
6 #include <cstdint>
7 #include <memory>
8 #include <vector>
9 
13 namespace lanelet {
14 
15 // PrimitiveData
16 class PrimitiveData;
17 using PrimitiveDataPtr = std::shared_ptr<PrimitiveData>;
18 using PrimitiveDataConstPtr = std::shared_ptr<const PrimitiveData>;
19 using PrimitiveDataPtrs = std::vector<PrimitiveDataPtr>;
20 using PrimitiveDataConstPtrs = std::vector<PrimitiveDataConstPtr>;
21 
22 // PointData
23 class PointData;
24 using PointDataPtr = std::shared_ptr<PointData>;
25 using PointDataConstPtr = std::shared_ptr<const PointData>;
26 using PointDataPtrs = std::vector<PointDataPtr>;
27 using PointDataConstPtrs = std::vector<PointDataConstPtr>;
28 
29 // Point
30 class Point3d;
31 class Point2d;
32 class ConstPoint3d;
33 class ConstPoint2d;
34 using Points3d = std::vector<Point3d>;
35 using ConstPoints3d = std::vector<ConstPoint3d>;
36 using Points2d = std::vector<Point2d>;
37 using ConstPoints2d = std::vector<ConstPoint2d>;
38 
39 // GPSPoint
40 class GPSPoint;
41 using GPSPoints = std::vector<GPSPoint>;
42 
43 // LinestringData
44 class LineStringData;
45 using LineStringDataPtr = std::shared_ptr<LineStringData>;
46 using LineStringDataConstPtr = std::shared_ptr<const LineStringData>;
47 using LineStringDataPtrs = std::vector<LineStringDataPtr>;
48 using LineStringDataConstPtrs = std::vector<LineStringDataConstPtr>;
49 
50 // Linestring
51 class LineString3d;
52 class ConstLineString3d;
53 class LineString2d;
54 class ConstLineString2d;
57 using LineStrings3d = std::vector<LineString3d>;
58 using ConstLineStrings3d = std::vector<ConstLineString3d>;
59 using LineStrings2d = std::vector<LineString2d>;
60 using ConstLineStrings2d = std::vector<ConstLineString2d>;
61 using ConstHybridLineStrings2d = std::vector<ConstHybridLineString2d>;
62 using ConstHybridLineStrings3d = std::vector<ConstHybridLineString3d>;
63 
64 // CompoundLineData
66 using CompoundLineStringDataPtr = std::shared_ptr<CompoundLineStringData>;
67 using CompoundLineStringDataConstPtr = std::shared_ptr<const CompoundLineStringData>;
68 using CompoundLineStringDataPtrs = std::vector<CompoundLineStringDataPtr>;
69 using CompoundLineStringDataConstPtrs = std::vector<CompoundLineStringDataConstPtr>;
70 
71 // CompoundLineString
76 using CompoundLineStrings2d = std::vector<CompoundLineString2d>;
77 using CompoundLineStrings3d = std::vector<CompoundLineString3d>;
78 using CompoundHybridLineStrings2d = std::vector<CompoundHybridLineString2d>;
79 using CompoundHybridLineStrings3d = std::vector<CompoundHybridLineString3d>;
80 
81 // CompoundPolygon
82 class CompoundPolygon3d;
83 class CompoundPolygon2d;
86 using CompoundPolygons3d = std::vector<CompoundPolygon3d>;
87 using CompoundPolygons2d = std::vector<CompoundPolygon2d>;
88 using CompoundHybridPolygons2d = std::vector<CompoundHybridPolygon2d>;
89 using CompoundHybridPolygons3d = std::vector<CompoundHybridPolygon3d>;
90 
91 // LaneletSequenceData
93 using LaneletSequenceDataPtr = std::shared_ptr<LaneletSequenceData>;
94 using LaneletSequenceDataConstPtr = std::shared_ptr<const LaneletSequenceData>;
95 using LaneletSequenceDataPtrs = std::vector<LaneletSequenceDataPtr>;
96 using LaneletSequenceDataConstPtrs = std::vector<LaneletSequenceDataConstPtr>;
97 
98 // LaneletData
99 class LaneletData;
100 using LaneletDataPtr = std::shared_ptr<LaneletData>;
101 using LaneletDataptr = std::weak_ptr<LaneletData>;
102 using LaneletDataConstPtr = std::shared_ptr<const LaneletData>;
103 using LaneletDataConstWptr = std::weak_ptr<const LaneletData>;
104 using LaneletDataPtrs = std::vector<LaneletDataPtr>;
105 using LaneletDataConstPtrs = std::vector<LaneletDataConstPtr>;
106 using LaneletDataConstWptrs = std::vector<LaneletDataConstWptr>;
107 
108 // Lanelet
109 class Lanelet;
110 class ConstLanelet;
111 class WeakLanelet;
112 class ConstWeakLanelet;
113 using Lanelets = std::vector<Lanelet>;
114 using ConstLanelets = std::vector<ConstLanelet>;
115 
116 // LaneletSequence
117 class LaneletSequence;
118 using LaneletSequences = std::vector<LaneletSequence>;
119 
120 // Area
121 class Area;
122 class ConstArea;
123 class WeakArea;
124 class ConstWeakArea;
125 using Areas = std::vector<Area>;
126 using ConstAreas = std::vector<ConstArea>;
127 
128 // AreaData
129 class AreaData;
130 using AreaDataPtr = std::shared_ptr<AreaData>;
131 using AreaDataptr = std::weak_ptr<AreaData>;
132 using AreaDataConstPtr = std::shared_ptr<const AreaData>;
133 using AreaDataPtrs = std::vector<AreaDataPtr>;
134 using AreaDataConstPtrs = std::vector<AreaDataConstPtr>;
135 
136 // LaneletOrArea
137 class ConstLaneletOrArea;
138 using ConstLaneletOrAreas = std::vector<ConstLaneletOrArea>;
139 
140 // Polygon
141 class BasicPolygon2d;
142 class BasicPolygon3d;
143 class Polygon3d;
144 class ConstPolygon3d;
145 class Polygon2d;
146 class ConstPolygon2d;
149 using Polygons3d = std::vector<Polygon3d>;
150 using ConstPolygons3d = std::vector<ConstPolygon3d>;
151 using Polygons2d = std::vector<Polygon2d>;
152 using ConstPolygons2d = std::vector<ConstPolygon2d>;
153 using BasicPolygons2d = std::vector<BasicPolygon2d>;
154 using BasicPolygons3d = std::vector<BasicPolygon3d>;
155 using ConstHybridPolygons2d = std::vector<ConstHybridPolygon2d>;
156 using ConstHybridPolygons3d = std::vector<ConstHybridPolygon3d>;
157 
158 // polygon with holes
161 using BasicPolygonsWithHoles3d = std::vector<BasicPolygonWithHoles3d>;
162 using BasicPolygonsWithHoles2d = std::vector<BasicPolygonWithHoles2d>;
163 
164 // LaneletMap
165 class LaneletMap;
166 using LaneletMapPtr = std::shared_ptr<LaneletMap>;
167 using LaneletMapUPtr = std::unique_ptr<LaneletMap>;
168 using LaneletMapConstPtr = std::shared_ptr<const LaneletMap>;
169 using LaneletMapConstUPtr = std::unique_ptr<const LaneletMap>;
170 using LaneletMapPtrs = std::vector<LaneletMapPtr>;
171 using LaneletMapConstPtrs = std::vector<LaneletMapConstPtr>;
172 
173 // LaneletSubmap
174 class LaneletSubmap;
175 using LaneletSubmapPtr = std::shared_ptr<LaneletSubmap>;
176 using LaneletSubmapUPtr = std::unique_ptr<LaneletSubmap>;
177 using LaneletSubmapConstPtr = std::shared_ptr<const LaneletSubmap>;
178 using LaneletSubmapConstUPtr = std::unique_ptr<const LaneletSubmap>;
179 using LaneletSubmapPtrs = std::vector<LaneletSubmapPtr>;
180 using LaneletSubmapConstPtrs = std::vector<LaneletSubmapConstPtr>;
181 
182 // RegulatoryElementData
184 using RegulatoryElementDataPtr = std::shared_ptr<RegulatoryElementData>;
185 using RegulatoryElementDataConstPtr = std::shared_ptr<const RegulatoryElementData>;
186 using RegulatoryElementDataPtrs = std::vector<RegulatoryElementDataPtr>;
187 using RegulatoryElementDataConstPtrs = std::vector<RegulatoryElementDataConstPtr>;
188 
189 // RegulatoryElement
190 class RegulatoryElement;
192 using RegulatoryElementPtr = std::shared_ptr<RegulatoryElement>;
193 using RegulatoryElementPtrs = std::vector<RegulatoryElementPtr>;
194 using RegulatoryElementConstPtr = std::shared_ptr<const RegulatoryElement>;
195 using RegulatoryElementConstPtrs = std::vector<RegulatoryElementConstPtr>;
197 
198 using Id = int64_t;
199 constexpr Id InvalId = 0;
200 using Ids = std::vector<Id>;
201 
202 // Velocity definitions
203 namespace units {
204 using MPS = boost::units::unit<boost::units::velocity_dimension, boost::units::si::system>;
205 using MPS2 = boost::units::unit<boost::units::acceleration_dimension, boost::units::si::system>;
206 using MPSQuantity = boost::units::quantity<MPS>;
207 using MPS2Quantity = boost::units::quantity<MPS2>;
208 
209 } // namespace units
212 
213 } // namespace lanelet
Polygon with access to primitive points.
std::vector< CompoundLineString2d > CompoundLineStrings2d
Definition: Forward.h:76
std::vector< ConstHybridLineString3d > ConstHybridLineStrings3d
Definition: Forward.h:62
std::vector< LineString2d > LineStrings2d
Definition: Forward.h:59
An object that can either refer to a lanelet or an area.
Definition: LaneletOrArea.h:10
std::vector< ConstHybridPolygon3d > ConstHybridPolygons3d
Definition: Forward.h:156
std::vector< LaneletSequenceDataConstPtr > LaneletSequenceDataConstPtrs
Definition: Forward.h:96
std::vector< PointDataConstPtr > PointDataConstPtrs
Definition: Forward.h:27
std::shared_ptr< RegulatoryElement > RegulatoryElementPtr
Definition: Forward.h:192
boost::units::quantity< MPS > MPSQuantity
Definition: Forward.h:206
std::vector< ConstLineString3d > ConstLineStrings3d
Definition: Forward.h:58
std::shared_ptr< LaneletSequenceData > LaneletSequenceDataPtr
Definition: Forward.h:93
boost::units::unit< boost::units::velocity_dimension, boost::units::si::system > MPS
Definition: Forward.h:204
std::shared_ptr< const CompoundLineStringData > CompoundLineStringDataConstPtr
Definition: Forward.h:67
std::vector< ConstLaneletOrArea > ConstLaneletOrAreas
Definition: Forward.h:138
A Linestring that returns BasicPoint2d instead of Point2d.
units::MPS2Quantity Acceleration
Definition: Forward.h:211
std::shared_ptr< const LaneletSequenceData > LaneletSequenceDataConstPtr
Definition: Forward.h:94
std::vector< RegulatoryElementPtr > RegulatoryElementPtrs
Definition: Forward.h:193
A Compound linestring in 3d (returns Point3d)
A (basic) 2d polygon with holes insideThis class is thought for geometry calculations, it has no properties of a normal lanelet primitive.
std::shared_ptr< LaneletMap > LaneletMapPtr
Definition: Forward.h:166
An mutable clockwise oriented, open (ie start point != end point) polygon in 2d.
std::vector< AreaDataPtr > AreaDataPtrs
Definition: Forward.h:133
An immutable clockwise oriented, open (ie start point != end point) polygon in 2d.
std::vector< LaneletSubmapConstPtr > LaneletSubmapConstPtrs
Definition: Forward.h:180
int64_t Id
Definition: Forward.h:198
std::vector< LaneletMapPtr > LaneletMapPtrs
Definition: Forward.h:170
std::shared_ptr< CompoundLineStringData > CompoundLineStringDataPtr
Definition: Forward.h:66
std::vector< Id > Ids
Definition: Forward.h:200
Combines multiple linestrings to one polygon in 3d that returns BasicPoint3d.
std::vector< BasicPolygonWithHoles3d > BasicPolygonsWithHoles3d
Definition: Forward.h:161
std::vector< ConstPolygon3d > ConstPolygons3d
Definition: Forward.h:150
std::shared_ptr< LaneletSubmap > LaneletSubmapPtr
Definition: Forward.h:175
The famous (mutable) lanelet class.
std::vector< CompoundPolygon2d > CompoundPolygons2d
Definition: Forward.h:87
A raw GPS point.
Definition: GPSPoint.h:7
std::vector< Lanelet > Lanelets
Definition: Forward.h:113
std::shared_ptr< const RegulatoryElementData > RegulatoryElementDataConstPtr
Definition: Forward.h:185
Common data management class for all Lanelet-Typed objects.
std::shared_ptr< RegulatoryElementData > RegulatoryElementDataPtr
Definition: Forward.h:184
A hybrid compound linestring in 2d (returns BasicPoint2d)
std::vector< LaneletMapConstPtr > LaneletMapConstPtrs
Definition: Forward.h:171
std::shared_ptr< LineStringData > LineStringDataPtr
Definition: Forward.h:45
A GenericRegulatoryElement can hold any parameters.
std::vector< ConstHybridPolygon2d > ConstHybridPolygons2d
Definition: Forward.h:155
std::vector< CompoundLineString3d > CompoundLineStrings3d
Definition: Forward.h:77
std::shared_ptr< const LaneletMap > LaneletMapConstPtr
Definition: Forward.h:168
std::weak_ptr< LaneletData > LaneletDataptr
Definition: Forward.h:101
An immutable 2d point.
Primitive 2d polygon with basic points.
boost::units::quantity< MPS2 > MPS2Quantity
Definition: Forward.h:207
A normal 3d linestring with immutable data.
std::vector< LaneletDataPtr > LaneletDataPtrs
Definition: Forward.h:104
std::vector< PointDataPtr > PointDataPtrs
Definition: Forward.h:26
std::shared_ptr< const PointData > PointDataConstPtr
Definition: Forward.h:25
used internally by RegulatoryElements to avoid cyclic dependencies.
Creates regulatory elements based on their type.
std::vector< Point3d > Points3d
Definition: Forward.h:34
std::vector< Polygon3d > Polygons3d
Definition: Forward.h:149
std::unique_ptr< LaneletMap > LaneletMapUPtr
Definition: Forward.h:167
Combines multiple linestrings to one polygon in 3d.
std::unique_ptr< const LaneletSubmap > LaneletSubmapConstUPtr
Definition: Forward.h:178
std::vector< ConstPolygon2d > ConstPolygons2d
Definition: Forward.h:152
std::shared_ptr< const AreaData > AreaDataConstPtr
Definition: Forward.h:132
A normal 3d linestring with mutable data.
A mutable 3d point.
std::weak_ptr< AreaData > AreaDataptr
Definition: Forward.h:131
std::shared_ptr< const PrimitiveData > PrimitiveDataConstPtr
Definition: Forward.h:18
std::vector< GPSPoint > GPSPoints
Definition: Forward.h:41
std::vector< CompoundHybridPolygon2d > CompoundHybridPolygons2d
Definition: Forward.h:88
std::vector< AreaDataConstPtr > AreaDataConstPtrs
Definition: Forward.h:134
std::weak_ptr< const LaneletData > LaneletDataConstWptr
Definition: Forward.h:103
std::vector< PrimitiveDataPtr > PrimitiveDataPtrs
Definition: Forward.h:19
std::shared_ptr< const LineStringData > LineStringDataConstPtr
Definition: Forward.h:46
std::vector< LaneletDataConstPtr > LaneletDataConstPtrs
Definition: Forward.h:105
Polygon with access to primitive points.
Common data object for all CompoundLineStrings.
A Compound linestring in 2d (returns Point2d)
A (basic) 2d polygon with holes insideThis class is thought for geometry calculations, it has no properties of a normal lanelet primitive.
A collection of Lanelets.
A LaneletSubmap only contains the elemets that have be expleicitly added to it.
Definition: LaneletMap.h:451
std::shared_ptr< const LaneletData > LaneletDataConstPtr
Definition: Forward.h:102
std::vector< PrimitiveDataConstPtr > PrimitiveDataConstPtrs
Definition: Forward.h:20
Data container for all RegulatoryElement types.
std::shared_ptr< PointData > PointDataPtr
Definition: Forward.h:24
std::shared_ptr< const RegulatoryElement > RegulatoryElementConstPtr
Definition: Forward.h:194
std::vector< RegulatoryElementDataConstPtr > RegulatoryElementDataConstPtrs
Definition: Forward.h:187
An immutable lanelet.
A Linestring that returns BasicPoint3d instead of Point3d.
std::vector< CompoundLineStringDataConstPtr > CompoundLineStringDataConstPtrs
Definition: Forward.h:69
std::vector< LaneletSubmapPtr > LaneletSubmapPtrs
Definition: Forward.h:179
A mutable clockwise oriented, open (ie start point != end point) polygon in 3d.
std::vector< ConstLineString2d > ConstLineStrings2d
Definition: Forward.h:60
An immutable clockwise oriented, open (ie start point != end point) polygon in 3d.
std::vector< BasicPolygonWithHoles2d > BasicPolygonsWithHoles2d
Definition: Forward.h:162
std::vector< LaneletSequenceDataPtr > LaneletSequenceDataPtrs
Definition: Forward.h:95
std::vector< BasicPolygon3d > BasicPolygons3d
Definition: Forward.h:154
Common data management class for LaneletSequences.
Famous Area class that represents a basic area as element of the map.
std::shared_ptr< LaneletData > LaneletDataPtr
Definition: Forward.h:100
A hybrid compound linestring in 3d (returns BasicPoint3d)
Combines multiple linestrings to one polygon in 2d that returns BasicPoint2d.
std::vector< ConstPoint2d > ConstPoints2d
Definition: Forward.h:37
std::vector< RegulatoryElementConstPtr > RegulatoryElementConstPtrs
Definition: Forward.h:195
std::vector< LaneletSequence > LaneletSequences
Definition: Forward.h:118
boost::units::unit< boost::units::acceleration_dimension, boost::units::si::system > MPS2
Definition: Forward.h:205
Common data management class for all Area-Typed objects.
std::shared_ptr< const LaneletSubmap > LaneletSubmapConstPtr
Definition: Forward.h:177
std::vector< Area > Areas
Definition: Forward.h:125
A general rule or limitation for a lanelet (abstract base class)
An immutable 3d point.
std::shared_ptr< AreaData > AreaDataPtr
Definition: Forward.h:130
std::vector< LineStringDataPtr > LineStringDataPtrs
Definition: Forward.h:47
std::unique_ptr< const LaneletMap > LaneletMapConstUPtr
Definition: Forward.h:169
A const (i.e. immutable) Area.
Basic element for accessing and managing the elements of a map.
Definition: LaneletMap.h:375
std::vector< Point2d > Points2d
Definition: Forward.h:36
Primitive 3d polygon with basic points.
Combines multiple linestrings to one polygon in 2d.
std::vector< LaneletDataConstWptr > LaneletDataConstWptrs
Definition: Forward.h:106
std::vector< Polygon2d > Polygons2d
Definition: Forward.h:151
std::shared_ptr< PrimitiveData > PrimitiveDataPtr
Definition: Forward.h:17
std::unique_ptr< LaneletSubmap > LaneletSubmapUPtr
Definition: Forward.h:176
std::vector< ConstHybridLineString2d > ConstHybridLineStrings2d
Definition: Forward.h:61
A normal 2d linestring with immutable data.
std::vector< CompoundPolygon3d > CompoundPolygons3d
Definition: Forward.h:86
A normal 2d linestring with mutable data.
A mutable 2d point.
std::vector< ConstPoint3d > ConstPoints3d
Definition: Forward.h:35
std::vector< LineStringDataConstPtr > LineStringDataConstPtrs
Definition: Forward.h:48
std::vector< RegulatoryElementDataPtr > RegulatoryElementDataPtrs
Definition: Forward.h:186
std::vector< LineString3d > LineStrings3d
Definition: Forward.h:57
std::vector< CompoundHybridLineString3d > CompoundHybridLineStrings3d
Definition: Forward.h:79
constexpr Id InvalId
indicates a primitive that is not part of a map
Definition: Forward.h:199
std::vector< CompoundHybridPolygon3d > CompoundHybridPolygons3d
Definition: Forward.h:89
units::MPSQuantity Velocity
Definition: Forward.h:210
std::vector< ConstArea > ConstAreas
Definition: Forward.h:126
std::vector< CompoundLineStringDataPtr > CompoundLineStringDataPtrs
Definition: Forward.h:68
std::vector< BasicPolygon2d > BasicPolygons2d
Definition: Forward.h:153
used internally by RegulatoryElements to avoid cyclic dependencies.
std::vector< ConstLanelet > ConstLanelets
Definition: Forward.h:114
std::vector< CompoundHybridLineString2d > CompoundHybridLineStrings2d
Definition: Forward.h:78


lanelet2_core
Author(s): Fabian Poggenhans
autogenerated on Tue Jun 6 2023 02:23:32