#include <Map.h>
类 carla::road::Map 继承关系图:
carla::road::Map 的协作图:类 | |
| struct | SignalSearchData |
| 数据结构用于信号搜索 更多... | |
Public 类型 | |
| using | Waypoint = element::Waypoint |
Public 成员函数 | |
| std::vector< element::LaneMarking > | CalculateCrossedLanes (const geom::Location &origin, const geom::Location &destination) const |
| std::unordered_map< road::RoadId, std::unordered_set< road::RoadId > > | ComputeJunctionConflicts (JuncId id) const |
| geom::Transform | ComputeTransform (Waypoint waypoint) const |
| std::vector< JuncId > | FilterJunctionsByPosition (const geom::Vector3D &minpos, const geom::Vector3D &maxpos) const |
| std::vector< RoadId > | FilterRoadsByPosition (const geom::Vector3D &minpos, const geom::Vector3D &maxpos) const |
| std::vector< std::unique_ptr< geom::Mesh > > | GenerateChunkedMesh (const rpc::OpendriveGenerationParameters ¶ms) const |
| void | GenerateJunctions (const carla::geom::MeshFactory &mesh_factory, const rpc::OpendriveGenerationParameters ¶ms, const geom::Vector3D &minpos, const geom::Vector3D &maxpos, std::map< road::Lane::LaneType, std::vector< std::unique_ptr< geom::Mesh > > > *juntion_out_mesh_list) const |
| std::vector< std::unique_ptr< geom::Mesh > > | GenerateLineMarkings (const rpc::OpendriveGenerationParameters ¶ms, const geom::Vector3D &minpos, const geom::Vector3D &maxpos, std::vector< std::string > &outinfo) const |
| geom::Mesh | GenerateMesh (const double distance, const float extra_width=0.6f, const bool smooth_junctions=true) const |
| 基于 OpenDRIVE 构建网格 更多... | |
| std::map< road::Lane::LaneType, std::vector< std::unique_ptr< geom::Mesh > > > | GenerateOrderedChunkedMeshInLocations (const rpc::OpendriveGenerationParameters ¶ms, const geom::Vector3D &minpos, const geom::Vector3D &maxpos) const |
| std::map< road::Lane::LaneType, std::vector< std::unique_ptr< geom::Mesh > > > | GenerateRoadsMultithreaded (const carla::geom::MeshFactory &mesh_factory, const std::vector< RoadId > &RoadsID, const size_t index, const size_t number_of_roads_per_thread) const |
| void | GenerateSingleJunction (const carla::geom::MeshFactory &mesh_factory, const JuncId Id, std::map< road::Lane::LaneType, std::vector< std::unique_ptr< geom::Mesh > > > *junction_out_mesh_list) const |
| std::vector< std::pair< Waypoint, Waypoint > > | GenerateTopology () const |
| 生成定义 map 拓扑结构的最小路点集。 路点放置在每个车道入口处。 更多... | |
| geom::Mesh | GenerateWalls (const double distance, const float wall_height) const |
| std::vector< Waypoint > | GenerateWaypoints (double approx_distance) const |
| 在 map 中生成所有路点,路点之间相隔 approx_distance。 更多... | |
| std::vector< Waypoint > | GenerateWaypointsInRoad (RoadId road_id, Lane::LaneType lane_type=Lane::LaneType::Driving) const |
| 在指定道路的每个车道入口处生成路点。 更多... | |
| std::vector< Waypoint > | GenerateWaypointsOnRoadEntries (Lane::LaneType lane_type=Lane::LaneType::Driving) const |
| 在每个 lane 的入口处生成路点, 默认是行驶车道类型。 更多... | |
| geom::Mesh | GetAllCrosswalkMesh () const |
| Buids a mesh of all crosswalks based on the OpenDRIVE // 基于OpenDRIVE构建所有人行横道的网格 更多... | |
| std::vector< geom::Location > | GetAllCrosswalkZones () const |
| 返回定义二维区域的位置信息,重复位置表示一个区域结束 更多... | |
| std::vector< const element::RoadInfoSignal * > | GetAllSignalReferences () const |
| 返回地图中的所有 RoadInfoSignal 更多... | |
| boost::optional< element::Waypoint > | GetClosestWaypointOnRoad (const geom::Location &location, int32_t lane_type=static_cast< int32_t >(Lane::LaneType::Driving)) const |
| ======================================================================== 更多... | |
| const std::unordered_map< ContId, std::unique_ptr< Controller > > & | GetControllers () const |
| const geom::GeoLocation & | GetGeoReference () const |
| ======================================================================== 更多... | |
| Junction * | GetJunction (JuncId id) |
| const Junction * | GetJunction (JuncId id) const |
| JuncId | GetJunctionId (RoadId road_id) const |
| std::vector< carla::geom::BoundingBox > | GetJunctionsBoundingBoxes () const |
| std::vector< std::pair< Waypoint, Waypoint > > | GetJunctionWaypoints (JuncId id, Lane::LaneType lane_type) const |
| 生成交叉口的路点。 更多... | |
| const Lane & | GetLane (Waypoint waypoint) const |
| ======================================================================== 更多... | |
| Lane::LaneType | GetLaneType (Waypoint waypoint) const |
| double | GetLaneWidth (Waypoint waypoint) const |
| boost::optional< Waypoint > | GetLeft (Waypoint waypoint) const |
| 返回 waypoint 左侧车道的路点。 更多... | |
| std::pair< const element::RoadInfoMarkRecord *, const element::RoadInfoMarkRecord * > | GetMarkRecord (Waypoint waypoint) const |
| std::vector< Waypoint > | GetNext (Waypoint waypoint, double distance) const |
| 返回距离 waypoint distance 的路点列表, 使得车辆可以驶向这些路点。 更多... | |
| std::vector< Waypoint > | GetPredecessors (Waypoint waypoint) const |
| std::vector< Waypoint > | GetPrevious (Waypoint waypoint, double distance) const |
| 返回距离 waypoint distance 的路点列表, 使得车辆可以反向驶向这些路点。 更多... | |
| boost::optional< Waypoint > | GetRight (Waypoint waypoint) const |
| 返回 waypoint 右侧车道的路点。 更多... | |
| const std::unordered_map< SignId, std::unique_ptr< Signal > > & | GetSignals () const |
| std::vector< SignalSearchData > | GetSignalsInDistance (Waypoint waypoint, double distance, bool stop_at_junction=false) const |
| 从初始路点搜索信号,直到定义的距离。 更多... | |
| std::vector< Waypoint > | GetSuccessors (Waypoint waypoint) const |
| ======================================================================== 更多... | |
| std::vector< std::pair< geom::Transform, std::string > > | GetTreesTransform (const geom::Vector3D &minpos, const geom::Vector3D &maxpos, float distancebetweentrees, float distancefromdrivinglineborder, float s_offset=0) const |
| boost::optional< element::Waypoint > | GetWaypoint (const geom::Location &location, int32_t lane_type=static_cast< int32_t >(Lane::LaneType::Driving)) const |
| boost::optional< element::Waypoint > | GetWaypoint (RoadId road_id, LaneId lane_id, float s) const |
| float | GetZPosInDeformation (float posx, float posy) const |
| bool | IsJunction (RoadId road_id) const |
| Map (MapData m) | |
| ======================================================================== 更多... | |
| std::unique_ptr< geom::Mesh > | SDFToMesh (const road::Junction &jinput, const std::vector< geom::Vector3D > &sdfinput, int grid_cells_per_dim) const |
Private 类型 | |
| using | Rtree = geom::SegmentCloudRtree< Waypoint > |
Private 成员函数 | |
| void | AddElementToRtree (std::vector< Rtree::TreeElement > &rtree_elements, geom::Transform ¤t_transform, geom::Transform &next_transform, Waypoint ¤t_waypoint, Waypoint &next_waypoint) |
| void | AddElementToRtreeAndUpdateTransforms (std::vector< Rtree::TreeElement > &rtree_elements, geom::Transform ¤t_transform, Waypoint ¤t_waypoint, Waypoint &next_waypoint) |
| void | CreateRtree () |
Private 成员函数 继承自 carla::MovableNonCopyable | |
| MovableNonCopyable ()=default | |
| MovableNonCopyable (const MovableNonCopyable &)=delete | |
| MovableNonCopyable (MovableNonCopyable &&)=default | |
| MovableNonCopyable & | operator= (const MovableNonCopyable &)=delete |
| MovableNonCopyable & | operator= (MovableNonCopyable &&)=default |
Private 属性 | |
| MapData | _data |
| Rtree | _rtree |
| friend | MapBuilder |
在文件 road/Map.h 第 29 行定义.
|
private |
在文件 road/Map.h 第 209 行定义.
在文件 road/Map.h 第 32 行定义.
|
inline |
========================================================================
在文件 road/Map.h 第 38 行定义.
引用了 CreateRtree().
函数调用图:
|
private |
|
private |
| std::vector< road::element::LaneMarking > Map::CalculateCrossedLanes | ( | const geom::Location & | origin, |
| const geom::Location & | destination | ||
| ) | const |
在文件 client/Map.cpp 第 127 行定义.
| std::unordered_map< road::RoadId, std::unordered_set< road::RoadId > > carla::road::Map::ComputeJunctionConflicts | ( | JuncId | id | ) | const |
| geom::Transform carla::road::Map::ComputeTransform | ( | Waypoint | waypoint | ) | const |
|
private |
| std::vector< JuncId > carla::road::Map::FilterJunctionsByPosition | ( | const geom::Vector3D & | minpos, |
| const geom::Vector3D & | maxpos | ||
| ) | const |
| std::vector< RoadId > carla::road::Map::FilterRoadsByPosition | ( | const geom::Vector3D & | minpos, |
| const geom::Vector3D & | maxpos | ||
| ) | const |
| std::vector< std::unique_ptr< geom::Mesh > > carla::road::Map::GenerateChunkedMesh | ( | const rpc::OpendriveGenerationParameters & | params | ) | const |
| void carla::road::Map::GenerateJunctions | ( | const carla::geom::MeshFactory & | mesh_factory, |
| const rpc::OpendriveGenerationParameters & | params, | ||
| const geom::Vector3D & | minpos, | ||
| const geom::Vector3D & | maxpos, | ||
| std::map< road::Lane::LaneType, std::vector< std::unique_ptr< geom::Mesh > > > * | juntion_out_mesh_list | ||
| ) | const |
| std::vector< std::unique_ptr< geom::Mesh > > carla::road::Map::GenerateLineMarkings | ( | const rpc::OpendriveGenerationParameters & | params, |
| const geom::Vector3D & | minpos, | ||
| const geom::Vector3D & | maxpos, | ||
| std::vector< std::string > & | outinfo | ||
| ) | const |
| geom::Mesh carla::road::Map::GenerateMesh | ( | const double | distance, |
| const float | extra_width = 0.6f, |
||
| const bool | smooth_junctions = true |
||
| ) | const |
基于 OpenDRIVE 构建网格
| std::map< road::Lane::LaneType, std::vector< std::unique_ptr< geom::Mesh > > > carla::road::Map::GenerateOrderedChunkedMeshInLocations | ( | const rpc::OpendriveGenerationParameters & | params, |
| const geom::Vector3D & | minpos, | ||
| const geom::Vector3D & | maxpos | ||
| ) | const |
| std::map< road::Lane::LaneType, std::vector< std::unique_ptr< geom::Mesh > > > carla::road::Map::GenerateRoadsMultithreaded | ( | const carla::geom::MeshFactory & | mesh_factory, |
| const std::vector< RoadId > & | RoadsID, | ||
| const size_t | index, | ||
| const size_t | number_of_roads_per_thread | ||
| ) | const |
| void carla::road::Map::GenerateSingleJunction | ( | const carla::geom::MeshFactory & | mesh_factory, |
| const JuncId | Id, | ||
| std::map< road::Lane::LaneType, std::vector< std::unique_ptr< geom::Mesh > > > * | junction_out_mesh_list | ||
| ) | const |
生成定义 map 拓扑结构的最小路点集。 路点放置在每个车道入口处。
| geom::Mesh carla::road::Map::GenerateWalls | ( | const double | distance, |
| const float | wall_height | ||
| ) | const |
在 map 中生成所有路点,路点之间相隔 approx_distance。
在文件 client/Map.cpp 第 113 行定义.
| std::vector< Waypoint > carla::road::Map::GenerateWaypointsInRoad | ( | RoadId | road_id, |
| Lane::LaneType | lane_type = Lane::LaneType::Driving |
||
| ) | const |
在指定道路的每个车道入口处生成路点。
| std::vector< Waypoint > carla::road::Map::GenerateWaypointsOnRoadEntries | ( | Lane::LaneType | lane_type = Lane::LaneType::Driving | ) | const |
在每个 lane 的入口处生成路点, 默认是行驶车道类型。
| geom::Mesh carla::road::Map::GetAllCrosswalkMesh | ( | ) | const |
Buids a mesh of all crosswalks based on the OpenDRIVE // 基于OpenDRIVE构建所有人行横道的网格
| std::vector< geom::Location > Map::GetAllCrosswalkZones | ( | ) | const |
返回定义二维区域的位置信息,重复位置表示一个区域结束
在文件 client/Map.cpp 第 139 行定义.
| std::vector< const element::RoadInfoSignal * > carla::road::Map::GetAllSignalReferences | ( | ) | const |
返回地图中的所有 RoadInfoSignal
| boost::optional< element::Waypoint > carla::road::Map::GetClosestWaypointOnRoad | ( | const geom::Location & | location, |
| int32_t | lane_type = static_cast< int32_t >(Lane::LaneType::Driving) |
||
| ) | const |
========================================================================
被这些函数引用 carla::road::element::LaneCrossingCalculator::Calculate().
这是这个函数的调用关系图:
|
inline |
|
inline |
========================================================================
在文件 road/Map.h 第 46 行定义.
引用了 _data , 以及 carla::road::MapData::GetGeoReference().
函数调用图:| std::vector< carla::geom::BoundingBox > carla::road::Map::GetJunctionsBoundingBoxes | ( | ) | const |
| std::vector< std::pair< SharedPtr< Waypoint >, SharedPtr< Waypoint > > > Map::GetJunctionWaypoints | ( | road::JuncId | id, |
| Lane::LaneType | lane_type | ||
| ) | const |
生成交叉口的路点。
在文件 client/Map.cpp 第 152 行定义.
| Lane::LaneType carla::road::Map::GetLaneType | ( | Waypoint | waypoint | ) | const |
| double carla::road::Map::GetLaneWidth | ( | Waypoint | waypoint | ) | const |
返回 waypoint 左侧车道的路点。
| std::pair< const element::RoadInfoMarkRecord *, const element::RoadInfoMarkRecord * > carla::road::Map::GetMarkRecord | ( | Waypoint | waypoint | ) | const |
返回距离 waypoint distance 的路点列表, 使得车辆可以驶向这些路点。
返回距离 waypoint distance 的路点列表, 使得车辆可以反向驶向这些路点。
返回 waypoint 右侧车道的路点。
| std::vector< SignalSearchData > carla::road::Map::GetSignalsInDistance | ( | Waypoint | waypoint, |
| double | distance, | ||
| bool | stop_at_junction = false |
||
| ) | const |
从初始路点搜索信号,直到定义的距离。
| std::vector< std::pair< geom::Transform, std::string > > carla::road::Map::GetTreesTransform | ( | const geom::Vector3D & | minpos, |
| const geom::Vector3D & | maxpos, | ||
| float | distancebetweentrees, | ||
| float | distancefromdrivinglineborder, | ||
| float | s_offset = 0 |
||
| ) | const |
| boost::optional< element::Waypoint > carla::road::Map::GetWaypoint | ( | const geom::Location & | location, |
| int32_t | lane_type = static_cast< int32_t >(Lane::LaneType::Driving) |
||
| ) | const |
| boost::optional< element::Waypoint > carla::road::Map::GetWaypoint | ( | RoadId | road_id, |
| LaneId | lane_id, | ||
| float | s | ||
| ) | const |
|
inline |
| bool carla::road::Map::IsJunction | ( | RoadId | road_id | ) | const |
| std::unique_ptr< geom::Mesh > carla::road::Map::SDFToMesh | ( | const road::Junction & | jinput, |
| const std::vector< geom::Vector3D > & | sdfinput, | ||
| int | grid_cells_per_dim | ||
| ) | const |
|
private |
在文件 road/Map.h 第 207 行定义.
被这些函数引用 GetControllers(), GetGeoReference() , 以及 GetSignals().
|
private |
在文件 road/Map.h 第 210 行定义.
|
private |
在文件 road/Map.h 第 206 行定义.