25 std::optional<Map>
Build();
30 const std::string name,
45 const uint32_t lane_type,
46 const bool lane_level,
66 const double curvature);
75 const double curvStart,
76 const double curvEnd);
105 const std::string p_range);
127 const std::string name,
130 const double zOffset,
134 const std::string orientation,
137 const std::vector<road::element::CrosswalkPoint> points);
171 const std::string name,
172 const std::string dynamic,
173 const std::string orientation,
174 const double zOffset,
175 const std::string country,
176 const std::string type,
177 const std::string subtype,
179 const std::string unit,
182 const std::string text,
183 const double hOffset,
201 const double zOffset,
202 const double hOffset,
209 const double s_position,
210 const double t_position,
211 const std::string signal_reference_orientation);
220 const std::string dependency_id,
221 const std::string dependency_type);
229 const std::string name,
230 const std::string orientation,
231 const std::string type,
232 const double zOffset,
242 const std::string name);
246 const ConId connection_id,
247 const RoadId incoming_road,
248 const RoadId connecting_road);
252 const ConId connection_id,
258 std::set<ContId>&& controllers);
274 const bool lane_level,
282 const std::string restriction);
301 const std::string surface,
302 const double friction,
303 const double roughness);
316 const std::string value);
321 const double forward,
336 const int road_mark_id,
338 const std::string type,
339 const std::string weight,
340 const std::string color,
341 const std::string material,
343 const std::string lane_change,
345 const std::string type_name,
346 const double type_width,
351 const int road_mark_id,
354 const double tOffset,
356 const std::string rule,
362 const std::string type,
364 const std::string unit);
370 const std::string unit);
382 const ContId controller_id,
383 const std::string controller_name,
384 const uint32_t controller_sequence,
385 const std::set<road::SignId>&& signals
454 std::unordered_map<Road *, std::vector<std::unique_ptr<element::RoadInfo>>>
457 std::unordered_map<Lane *, std::vector<std::unique_ptr<element::RoadInfo>>>
460 std::unordered_map<SignId, std::unique_ptr<Signal>>
465 std::unordered_map<StencilId, std::unique_ptr<Stencil>>
std::map< std::string, unsigned int > road
LaneType
Can be used as flags.
std::unordered_map< SignId, std::unique_ptr< Signal > > _temp_signal_container
Lane * GetEdgeLanePointer(RoadId road_id, LaneId lane_id)
Return the pointer to a lane object.
void AddRoadGeometryArc(carla::road::Road *road, const double s, const double x, const double y, const double hdg, const double length, const double curvature)
std::vector< element::RoadInfoStencil * > _temp_stencil_reference_container
element::RoadInfoStencil * AddStencil(Road *road, const StencilId stencil_id, const double s, const double t, const std::string name, const std::string orientation, const std::string type, const double zOffset, const double heading, const double length, const double width, const double pitch, const double roll)
void SetGeoProjection(const geom::GeoProjection &geo_projection)
void CreateController(const ContId controller_id, const std::string controller_name, const uint32_t controller_sequence, const std::set< road::SignId > &&signals)
carla::road::Lane * AddRoadSectionLane(carla::road::LaneSection *section, const LaneId lane_id, const uint32_t lane_type, const bool lane_level, const LaneId predecessor, const LaneId successor)
void SolveStencilReferencesAndTransforms()
Solves the stencil references in the road.
void AddSignalPositionRoad(const SignId signal_id, const RoadId road_id, const double s, const double t, const double zOffset, const double hOffset, const double pitch, const double roll)
void AddSignalPositionInertial(const SignId signal_id, const double x, const double y, const double z, const double hdg, const double pitch, const double roll)
void CreateRoadSpeed(Road *road, const double s, const std::string type, const double max, const std::string unit)
void DebugRoadConnections()
Debug the built connections through the terminal.
void CreateSectionOffset(Road *road, const double s, const double a, const double b, const double c, const double d)
void AddJunctionController(const JuncId junction_id, std::set< ContId > &&controllers)
carla::road::LaneSection * AddRoadSection(carla::road::Road *road, const SectionId id, const double s)
void CreateRoadMark(Lane *lane, const int road_mark_id, const double s, const std::string type, const std::string weight, const std::string color, const std::string material, const double width, const std::string lane_change, const double height, const std::string type_name, const double type_width, const bool is_rht)
void CreateLaneAccess(Lane *lane, const double s, const std::string restriction)
void AddRoadLateralShape(Road *road, const double s, const double a, const double b, const double c, const double d, const double t)
void AddRoadObjectCrosswalk(Road *road, const std::string name, const double s, const double t, const double zOffset, const double hdg, const double pitch, const double roll, const std::string orientation, const double width, const double length, const std::vector< road::element::CrosswalkPoint > points)
geom::Transform ComputeStencilTransform(std::unique_ptr< Stencil > &stencil, MapData &data)
void CreateLaneHeight(Lane *lane, const double s, const double inner, const double outer)
geom::Transform ComputeSignalTransform(std::unique_ptr< Signal > &signal, MapData &data)
Lane * GetLane(const RoadId road_id, const LaneId lane_id, const double s)
void CreateLaneBorder(Lane *lane, const double s, const double a, const double b, const double c, const double d)
std::unordered_map< StencilId, std::unique_ptr< Stencil > > _temp_stencil_container
void ComputeJunctionRoadConflicts(Map &map)
Compute the conflicts of the roads (intersecting roads)
void AddValidityToSignalReference(element::RoadInfoSignal *signal_reference, const LaneId from_lane, const LaneId to_lane)
std::optional< Map > Build()
void CreateLaneRule(Lane *lane, const double s, const std::string value)
void SetGeoReference(const geom::GeoLocation &geo_reference)
void SolveControllerAndJuntionReferences()
Solve the references between Controllers and Juntions.
void AddRoadElevationProfile(Road *road, const double s, const double a, const double b, const double c, const double d)
void AddJunction(const JuncId id, const std::string name)
void CreateLaneSpeed(Lane *lane, const double s, const double max, const std::string unit)
std::unordered_map< Road *, std::vector< std::unique_ptr< element::RoadInfo > > > _temp_road_info_container
Map to temporary store all the road and lane infos until the map is built, so they can be added all t...
void AddLaneLink(const JuncId junction_id, const ConId connection_id, const LaneId from, const LaneId to)
void AddDependencyToSignal(const SignId signal_id, const std::string dependency_id, const std::string dependency_type)
void AddRoadGeometryParamPoly3(carla::road::Road *road, const double s, const double x, const double y, const double hdg, const double length, const double aU, const double bU, const double cU, const double dU, const double aV, const double bV, const double cV, const double dV, const std::string p_range)
void RemoveZeroLaneValiditySignalReferences()
Removes signal references with lane validity equal to [0,0] as they have no effect on any road.
void CreateRoadMarkTypeLine(Lane *lane, const int road_mark_id, const double length, const double space, const double tOffset, const double s, const std::string rule, const double width)
void AddRoadSection(const RoadId road_id, const SectionId section_index, const double s, const double a, const double b, const double c, const double d)
void CreateJunctionBoundingBoxes(Map &map)
Create the bounding boxes of each junction.
element::RoadInfoSignal * AddSignalReference(Road *road, const SignId signal_id, const double s_position, const double t_position, const std::string signal_reference_orientation)
std::unordered_map< Lane *, std::vector< std::unique_ptr< element::RoadInfo > > > _temp_lane_info_container
std::vector< element::RoadInfoSignal * > _temp_signal_reference_container
void AddRoadGeometryPoly3(carla::road::Road *road, const double s, const double x, const double y, const double hdg, const double length, const double a, const double b, const double c, const double d)
void GenerateDefaultValiditiesForSignalReferences()
Generates a default validity field for signal references with missing validity record in OpenDRIVE.
carla::road::Road * AddRoad(const RoadId road_id, const std::string name, const double length, const JuncId junction_id, const RoadId predecessor, const RoadId successor, const bool is_rht)
void AddConnection(const JuncId junction_id, const ConId connection_id, const RoadId incoming_road, const RoadId connecting_road)
element::RoadInfoSignal * AddSignal(Road *road, const SignId signal_id, const double s, const double t, const std::string name, const std::string dynamic, const std::string orientation, const double zOffset, const std::string country, const std::string type, const std::string subtype, const double value, const std::string unit, const double height, const double width, const std::string text, const double hOffset, const double pitch, const double roll)
std::vector< Lane * > GetLaneNext(RoadId road_id, SectionId section_id, LaneId lane_id)
Return a list of pointers to all lanes from a lane (using road and junction info).
void CreateLaneWidth(Lane *lane, const double s, const double a, const double b, const double c, const double d)
std::vector< std::pair< RoadId, const Lane * > > GetJunctionLanes(JuncId junction_id, RoadId road_id, LaneId lane_id)
void SolveSignalReferencesAndTransforms()
Solves the signal references in the road.
void CreateLaneVisibility(Lane *lane, const double s, const double forward, const double back, const double left, const double right)
void CreatePointersBetweenRoadSegments()
Create the pointers between RoadSegments based on the ids.
Road * GetRoad(const RoadId road_id)
void SetRoadLaneLink(const RoadId road_id, const SectionId section_index, const LaneId lane_id, const Lane::LaneType lane_type, const bool lane_level, const LaneId predecessor, const LaneId successor)
void CreateLaneMaterial(Lane *lane, const double s, const std::string surface, const double friction, const double roughness)
void CheckSignalsOnRoads(Map &map)
Checks signals overlapping driving lanes and emits a warning.
void AddRoadGeometrySpiral(carla::road::Road *road, const double s, const double x, const double y, const double hdg, const double length, const double curvStart, const double curvEnd)
void AddRoadGeometryLine(carla::road::Road *road, const double s, const double x, const double y, const double hdg, const double length)
geom::GeoProjection _geo_projection
geom::GeoLocation _geo_reference
This file contains definitions of common data structures used in traffic manager.