CARLA
 
载入中...
搜索中...
未找到
| Public 类型 | Public 成员函数 | Private 类型 | Private 成员函数 | Private 属性 | 所有成员列表
carla::road::Map类 参考

#include <Map.h>

+ 类 carla::road::Map 继承关系图:
+ carla::road::Map 的协作图:

struct  SignalSearchData
 数据结构用于信号搜索 更多...
 

Public 类型

using Waypoint = element::Waypoint
 

Public 成员函数

std::vector< element::LaneMarkingCalculateCrossedLanes (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< JuncIdFilterJunctionsByPosition (const geom::Vector3D &minpos, const geom::Vector3D &maxpos) const
 
std::vector< RoadIdFilterRoadsByPosition (const geom::Vector3D &minpos, const geom::Vector3D &maxpos) const
 
std::vector< std::unique_ptr< geom::Mesh > > GenerateChunkedMesh (const rpc::OpendriveGenerationParameters &params) const
 
void 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 > > GenerateLineMarkings (const rpc::OpendriveGenerationParameters &params, 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 &params, 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< WaypointGenerateWaypoints (double approx_distance) const
 map 中生成所有路点,路点之间相隔 approx_distance。
 
std::vector< WaypointGenerateWaypointsInRoad (RoadId road_id, Lane::LaneType lane_type=Lane::LaneType::Driving) const
 在指定道路的每个车道入口处生成路点。
 
std::vector< WaypointGenerateWaypointsOnRoadEntries (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::LocationGetAllCrosswalkZones () const
 返回定义二维区域的位置信息,重复位置表示一个区域结束
 
std::vector< const element::RoadInfoSignal * > GetAllSignalReferences () const
 返回地图中的所有 RoadInfoSignal
 
boost::optional< element::WaypointGetClosestWaypointOnRoad (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::GeoLocationGetGeoReference () const
 ========================================================================
 
JunctionGetJunction (JuncId id)
 
const JunctionGetJunction (JuncId id) const
 
JuncId GetJunctionId (RoadId road_id) const
 
std::vector< carla::geom::BoundingBoxGetJunctionsBoundingBoxes () const
 
std::vector< std::pair< Waypoint, Waypoint > > GetJunctionWaypoints (JuncId id, Lane::LaneType lane_type) const
 生成交叉口的路点。
 
const LaneGetLane (Waypoint waypoint) const
 ========================================================================
 
Lane::LaneType GetLaneType (Waypoint waypoint) const
 
double GetLaneWidth (Waypoint waypoint) const
 
boost::optional< WaypointGetLeft (Waypoint waypoint) const
 返回 waypoint 左侧车道的路点。
 
std::pair< const element::RoadInfoMarkRecord *, const element::RoadInfoMarkRecord * > GetMarkRecord (Waypoint waypoint) const
 
std::vector< WaypointGetNext (Waypoint waypoint, double distance) const
 返回距离 waypoint distance 的路点列表, 使得车辆可以驶向这些路点。
 
std::vector< WaypointGetPredecessors (Waypoint waypoint) const
 
std::vector< WaypointGetPrevious (Waypoint waypoint, double distance) const
 返回距离 waypoint distance 的路点列表, 使得车辆可以反向驶向这些路点。
 
boost::optional< WaypointGetRight (Waypoint waypoint) const
 返回 waypoint 右侧车道的路点。
 
const std::unordered_map< SignId, std::unique_ptr< Signal > > & GetSignals () const
 
std::vector< SignalSearchDataGetSignalsInDistance (Waypoint waypoint, double distance, bool stop_at_junction=false) const
 从初始路点搜索信号,直到定义的距离。
 
std::vector< WaypointGetSuccessors (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::WaypointGetWaypoint (const geom::Location &location, int32_t lane_type=static_cast< int32_t >(Lane::LaneType::Driving)) const
 
boost::optional< element::WaypointGetWaypoint (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::MeshSDFToMesh (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 &current_transform, geom::Transform &next_transform, Waypoint &current_waypoint, Waypoint &next_waypoint)
 
void AddElementToRtreeAndUpdateTransforms (std::vector< Rtree::TreeElement > &rtree_elements, geom::Transform &current_transform, Waypoint &current_waypoint, Waypoint &next_waypoint)
 
void CreateRtree ()
 
- Private 成员函数 继承自 carla::MovableNonCopyable
 MovableNonCopyable ()=default
 
 MovableNonCopyable (const MovableNonCopyable &)=delete
 
 MovableNonCopyable (MovableNonCopyable &&)=default
 
MovableNonCopyableoperator= (const MovableNonCopyable &)=delete
 
MovableNonCopyableoperator= (MovableNonCopyable &&)=default
 

Private 属性

MapData _data
 
Rtree _rtree
 
friend MapBuilder
 

详细描述

在文件 road/Map.h29 行定义.

成员类型定义说明

◆ Rtree

在文件 road/Map.h209 行定义.

◆ Waypoint

在文件 road/Map.h32 行定义.

构造及析构函数说明

◆ Map()

Map::Map ( MapData m)
inline

========================================================================

– Constructor ------------------------------------------------------—

在文件 road/Map.h38 行定义.

引用了 CreateRtree().

+ 函数调用图:

成员函数说明

◆ AddElementToRtree()

void carla::road::Map::AddElementToRtree ( std::vector< Rtree::TreeElement > & rtree_elements,
geom::Transform & current_transform,
geom::Transform & next_transform,
Waypoint & current_waypoint,
Waypoint & next_waypoint )
private

◆ AddElementToRtreeAndUpdateTransforms()

void carla::road::Map::AddElementToRtreeAndUpdateTransforms ( std::vector< Rtree::TreeElement > & rtree_elements,
geom::Transform & current_transform,
Waypoint & current_waypoint,
Waypoint & next_waypoint )
private

◆ CalculateCrossedLanes()

std::vector< road::element::LaneMarking > Map::CalculateCrossedLanes ( const geom::Location & origin,
const geom::Location & destination ) const

在文件 client/Map.cpp127 行定义.

◆ ComputeJunctionConflicts()

std::unordered_map< road::RoadId, std::unordered_set< road::RoadId > > carla::road::Map::ComputeJunctionConflicts ( JuncId id) const

◆ ComputeTransform()

geom::Transform carla::road::Map::ComputeTransform ( Waypoint waypoint) const

被这些函数引用 carla::road::element::LaneCrossingCalculator::Calculate().

+ 这是这个函数的调用关系图:

◆ CreateRtree()

void carla::road::Map::CreateRtree ( )
private

被这些函数引用 Map().

+ 这是这个函数的调用关系图:

◆ FilterJunctionsByPosition()

std::vector< JuncId > carla::road::Map::FilterJunctionsByPosition ( const geom::Vector3D & minpos,
const geom::Vector3D & maxpos ) const

◆ FilterRoadsByPosition()

std::vector< RoadId > carla::road::Map::FilterRoadsByPosition ( const geom::Vector3D & minpos,
const geom::Vector3D & maxpos ) const

◆ GenerateChunkedMesh()

std::vector< std::unique_ptr< geom::Mesh > > carla::road::Map::GenerateChunkedMesh ( const rpc::OpendriveGenerationParameters & params) const

◆ GenerateJunctions()

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

◆ GenerateLineMarkings()

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

◆ GenerateMesh()

geom::Mesh carla::road::Map::GenerateMesh ( const double distance,
const float extra_width = 0.6f,
const bool smooth_junctions = true ) const

基于 OpenDRIVE 构建网格

◆ GenerateOrderedChunkedMeshInLocations()

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

◆ GenerateRoadsMultithreaded()

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

◆ GenerateSingleJunction()

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

◆ GenerateTopology()

std::vector< std::pair< Waypoint, Waypoint > > carla::road::Map::GenerateTopology ( ) const

生成定义 map 拓扑结构的最小路点集。 路点放置在每个车道入口处。

◆ GenerateWalls()

geom::Mesh carla::road::Map::GenerateWalls ( const double distance,
const float wall_height ) const

◆ GenerateWaypoints()

std::vector< SharedPtr< Waypoint > > Map::GenerateWaypoints ( double approx_distance) const

map 中生成所有路点,路点之间相隔 approx_distance。

在文件 client/Map.cpp113 行定义.

◆ GenerateWaypointsInRoad()

std::vector< Waypoint > carla::road::Map::GenerateWaypointsInRoad ( RoadId road_id,
Lane::LaneType lane_type = Lane::LaneType::Driving ) const

在指定道路的每个车道入口处生成路点。

◆ GenerateWaypointsOnRoadEntries()

std::vector< Waypoint > carla::road::Map::GenerateWaypointsOnRoadEntries ( Lane::LaneType lane_type = Lane::LaneType::Driving) const

在每个 lane 的入口处生成路点, 默认是行驶车道类型。

◆ GetAllCrosswalkMesh()

geom::Mesh carla::road::Map::GetAllCrosswalkMesh ( ) const

Buids a mesh of all crosswalks based on the OpenDRIVE // 基于OpenDRIVE构建所有人行横道的网格

◆ GetAllCrosswalkZones()

std::vector< geom::Location > Map::GetAllCrosswalkZones ( ) const

返回定义二维区域的位置信息,重复位置表示一个区域结束

在文件 client/Map.cpp139 行定义.

◆ GetAllSignalReferences()

std::vector< const element::RoadInfoSignal * > carla::road::Map::GetAllSignalReferences ( ) const

返回地图中的所有 RoadInfoSignal

◆ GetClosestWaypointOnRoad()

boost::optional< element::Waypoint > carla::road::Map::GetClosestWaypointOnRoad ( const geom::Location & location,
int32_t lane_type = static_cast< int32_t >(Lane::LaneType::Driving) ) const

========================================================================

– Geometry ---------------------------------------------------------—

被这些函数引用 carla::road::element::LaneCrossingCalculator::Calculate().

+ 这是这个函数的调用关系图:

◆ GetControllers()

const std::unordered_map< ContId, std::unique_ptr< Controller > > & carla::road::Map::GetControllers ( ) const
inline

在文件 road/Map.h192 行定义.

引用了 _data , 以及 carla::road::MapData::GetControllers().

+ 函数调用图:

◆ GetGeoReference()

const geom::GeoLocation & Map::GetGeoReference ( ) const
inline

========================================================================

– Georeference -----------------------------------------------------—

在文件 road/Map.h46 行定义.

引用了 _data , 以及 carla::road::MapData::GetGeoReference().

+ 函数调用图:

◆ GetJunction() [1/2]

Junction * carla::road::Map::GetJunction ( JuncId id)

◆ GetJunction() [2/2]

const Junction * carla::road::Map::GetJunction ( JuncId id) const

◆ GetJunctionId()

JuncId carla::road::Map::GetJunctionId ( RoadId road_id) const

◆ GetJunctionsBoundingBoxes()

std::vector< carla::geom::BoundingBox > carla::road::Map::GetJunctionsBoundingBoxes ( ) const

◆ GetJunctionWaypoints()

std::vector< std::pair< SharedPtr< Waypoint >, SharedPtr< Waypoint > > > Map::GetJunctionWaypoints ( road::JuncId id,
Lane::LaneType lane_type ) const

生成交叉口的路点。

在文件 client/Map.cpp152 行定义.

◆ GetLane()

const Lane & carla::road::Map::GetLane ( Waypoint waypoint) const

========================================================================

– Road information -------------------------------------------------—

◆ GetLaneType()

Lane::LaneType carla::road::Map::GetLaneType ( Waypoint waypoint) const

◆ GetLaneWidth()

double carla::road::Map::GetLaneWidth ( Waypoint waypoint) const

◆ GetLeft()

boost::optional< Waypoint > carla::road::Map::GetLeft ( Waypoint waypoint) const

返回 waypoint 左侧车道的路点。

◆ GetMarkRecord()

std::pair< const element::RoadInfoMarkRecord *, const element::RoadInfoMarkRecord * > carla::road::Map::GetMarkRecord ( Waypoint waypoint) const

被这些函数引用 carla::road::element::CrossingAtSameSection().

+ 这是这个函数的调用关系图:

◆ GetNext()

std::vector< Waypoint > carla::road::Map::GetNext ( Waypoint waypoint,
double distance ) const

返回距离 waypoint distance 的路点列表, 使得车辆可以驶向这些路点。

◆ GetPredecessors()

std::vector< Waypoint > carla::road::Map::GetPredecessors ( Waypoint waypoint) const

◆ GetPrevious()

std::vector< Waypoint > carla::road::Map::GetPrevious ( Waypoint waypoint,
double distance ) const

返回距离 waypoint distance 的路点列表, 使得车辆可以反向驶向这些路点。

◆ GetRight()

boost::optional< Waypoint > carla::road::Map::GetRight ( Waypoint waypoint) const

返回 waypoint 右侧车道的路点。

◆ GetSignals()

const std::unordered_map< SignId, std::unique_ptr< Signal > > & carla::road::Map::GetSignals ( ) const
inline

在文件 road/Map.h188 行定义.

引用了 _data , 以及 carla::road::MapData::GetSignals().

+ 函数调用图:

◆ GetSignalsInDistance()

std::vector< SignalSearchData > carla::road::Map::GetSignalsInDistance ( Waypoint waypoint,
double distance,
bool stop_at_junction = false ) const

从初始路点搜索信号,直到定义的距离。

◆ GetSuccessors()

std::vector< Waypoint > carla::road::Map::GetSuccessors ( Waypoint waypoint) const

========================================================================

– 路点生成 ----------------------------------------------------------—

返回每个可行驶后续车道入口处的路点列表;即从 waypoint 出发, 车辆可以驶向的下一个路段的每个路点列表。

◆ GetTreesTransform()

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

◆ GetWaypoint() [1/2]

boost::optional< element::Waypoint > carla::road::Map::GetWaypoint ( const geom::Location & location,
int32_t lane_type = static_cast< int32_t >(Lane::LaneType::Driving) ) const

被这些函数引用 carla::road::element::IsOffRoad().

+ 这是这个函数的调用关系图:

◆ GetWaypoint() [2/2]

boost::optional< element::Waypoint > carla::road::Map::GetWaypoint ( RoadId road_id,
LaneId lane_id,
float s ) const

◆ GetZPosInDeformation()

float carla::road::Map::GetZPosInDeformation ( float posx,
float posy ) const
inline

◆ IsJunction()

bool carla::road::Map::IsJunction ( RoadId road_id) const

被这些函数引用 carla::road::element::LaneCrossingCalculator::Calculate().

+ 这是这个函数的调用关系图:

◆ SDFToMesh()

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

类成员变量说明

◆ _data

MapData carla::road::Map::_data
private

在文件 road/Map.h207 行定义.

被这些函数引用 GetControllers(), GetGeoReference() , 以及 GetSignals().

◆ _rtree

Rtree carla::road::Map::_rtree
private

在文件 road/Map.h210 行定义.

◆ MapBuilder

friend carla::road::Map::MapBuilder
private

在文件 road/Map.h206 行定义.


该类的文档由以下文件生成: