#include <Map.h>
类 | |
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 () |
![]() | |
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 行定义.