Mesh辅助生成器 更多...
#include <MeshFactory.h>
类 | |
struct | RoadParameters |
道路生成参数 更多... | |
Public 成员函数 | |
std::unique_ptr< Mesh > | Generate (const road::Lane &lane) const |
生成定义整个车道的网格 | |
std::unique_ptr< Mesh > | Generate (const road::Lane &lane, const double s_start, const double s_end) const |
从给定的s起始和结束生成车道的网格 | |
std::unique_ptr< Mesh > | Generate (const road::LaneSection &lane_section) const |
生成定义一段车道的网格 | |
std::unique_ptr< Mesh > | Generate (const road::Road &road) const |
生成定义一条道路的网格 | |
void | GenerateAllOrderedWithMaxLen (const road::Road &road, std::map< road::Lane::LaneType, std::vector< std::unique_ptr< Mesh > > > &roads) const |
生成按顺序排列的道路网格,限制最大长度 | |
std::vector< std::unique_ptr< Mesh > > | GenerateAllWithMaxLen (const road::Road &road) const |
生成带有所有模拟所需特性的分块道路 | |
void | GenerateLaneMarkForRoad (const road::Road &road, std::vector< std::unique_ptr< Mesh > > &inout, std::vector< std::string > &outinfo) const |
为道路生成车道标记 | |
void | GenerateLaneMarksForCenterLine (const road::Road &road, const road::LaneSection &lane_section, const road::Lane &lane, std::vector< std::unique_ptr< Mesh > > &inout, std::vector< std::string > &outinfo) const |
仅为中心线(ID为0的线)生成车道标记 | |
void | GenerateLaneMarksForNotCenterLine (const road::LaneSection &lane_section, const road::Lane &lane, std::vector< std::unique_ptr< Mesh > > &inout, std::vector< std::string > &outinfo) const |
为非中心线(即ID不为0的所有线)生成车道标记 | |
void | GenerateLaneSectionOrdered (const road::LaneSection &lane_section, std::map< carla::road::Lane::LaneType, std::vector< std::unique_ptr< Mesh > > > &result) const |
生成按顺序排列的车道段网格 | |
std::unique_ptr< Mesh > | GenerateLeftWall (const road::Lane &lane, const double s_start, const double s_end) const |
在车道的左侧生成一个墙状网格 | |
std::map< carla::road::Lane::LaneType, std::vector< std::unique_ptr< Mesh > > > | GenerateOrderedWithMaxLen (const road::LaneSection &lane_section) const |
生成一个定义车道段的按顺序排列的网格列表,限制最大长度 | |
std::map< carla::road::Lane::LaneType, std::vector< std::unique_ptr< Mesh > > > | GenerateOrderedWithMaxLen (const road::Road &road) const |
生成一个定义道路的按顺序排列的网格列表,限制最大长度 | |
std::unique_ptr< Mesh > | GenerateRightWall (const road::Lane &lane, const double s_start, const double s_end) const |
在车道的右侧生成一个墙状网格 | |
std::unique_ptr< Mesh > | GenerateSidewalk (const road::Lane &lane) const |
生成车道的人行道网格 | |
std::unique_ptr< Mesh > | GenerateSidewalk (const road::Lane &lane, const double s_start, const double s_end) const |
从给定的s起始和结束生成车道的人行道网格 | |
std::unique_ptr< Mesh > | GenerateSidewalk (const road::LaneSection &lane_section) const |
生成车道段的人行道网格 | |
std::unique_ptr< Mesh > | GenerateTesselated (const road::Lane &lane) const |
生成定义整个车道的网格,使用更高的细分 | |
std::unique_ptr< Mesh > | GenerateTesselated (const road::Lane &lane, const double s_start, const double s_end) const |
用更高的细分生成从给定的s起始和结束的车道网格 | |
std::unique_ptr< Mesh > | GenerateWalls (const road::LaneSection &lane_section) const |
生成一个网格,表示道路角落的墙,以避免车辆掉下去 | |
std::vector< std::unique_ptr< Mesh > > | GenerateWallsWithMaxLen (const road::LaneSection &lane_section) const |
生成一个定义车道段安全墙的网格列表,限制最大长度 | |
std::vector< std::unique_ptr< Mesh > > | GenerateWallsWithMaxLen (const road::Road &road) const |
生成一个定义道路安全墙的网格列表,限制最大长度 | |
std::vector< std::unique_ptr< Mesh > > | GenerateWithMaxLen (const road::LaneSection &lane_section) const |
生成一个定义车道段的网格列表,限制最大长度 | |
std::vector< std::unique_ptr< Mesh > > | GenerateWithMaxLen (const road::Road &road) const |
生成一个定义道路的网格列表,限制最大长度 | |
std::unique_ptr< Mesh > | MergeAndSmooth (std::vector< std::unique_ptr< Mesh > > &lane_meshes) const |
合并并平滑多个车道网格 | |
MeshFactory (rpc::OpendriveGenerationParameters params=rpc::OpendriveGenerationParameters()) | |
静态 Public 成员函数 | |
static uint32_t | SelectVerticesInWidth (uint32_t default_num_vertices, road::Lane::LaneType type) |
在给定车道类型下选择的宽度内的顶点数量 | |
Public 属性 | |
RoadParameters | road_param |
Private 成员函数 | |
std::pair< geom::Vector3D, geom::Vector3D > | ComputeEdgesForLanemark (const road::LaneSection &lane_section, const road::Lane &lane, const double s_current, const double lanemark_width) const |
计算车道标记的当前s位置两侧的点 | |
Mesh辅助生成器
在文件 MeshFactory.h 第 22 行定义.
carla::geom::MeshFactory::MeshFactory | ( | rpc::OpendriveGenerationParameters | params = rpc::OpendriveGenerationParameters() | ) |
在文件 MeshFactory.cpp 第 22 行定义.
引用了 carla::geom::MeshFactory::RoadParameters::extra_lane_width, carla::geom::MeshFactory::RoadParameters::max_road_len, carla::rpc::OpendriveGenerationParameters::max_road_length, carla::geom::MeshFactory::RoadParameters::resolution, road_param, carla::rpc::OpendriveGenerationParameters::vertex_distance, carla::geom::MeshFactory::RoadParameters::vertex_width_resolution, carla::rpc::OpendriveGenerationParameters::vertex_width_resolution, carla::geom::MeshFactory::RoadParameters::wall_height , 以及 carla::rpc::OpendriveGenerationParameters::wall_height.
|
private |
计算车道标记的当前s位置两侧的点
在文件 MeshFactory.cpp 第 1204 行定义.
引用了 carla::geom::MeshFactory::RoadParameters::extra_lane_width, carla::road::Lane::GetCornerPositions(), carla::road::LaneSection::GetLanes(), carla::geom::Vector3D::Length() , 以及 road_param.
被这些函数引用 GenerateLaneMarksForCenterLine() , 以及 GenerateLaneMarksForNotCenterLine().
std::unique_ptr< Mesh > carla::geom::MeshFactory::Generate | ( | const road::Lane & | lane | ) | const |
生成定义整个车道的网格
在文件 MeshFactory.cpp 第 53 行定义.
引用了 carla::geom::EPSILON, Generate(), carla::road::Lane::GetDistance() , 以及 carla::road::Lane::GetLength().
std::unique_ptr< Mesh > carla::geom::MeshFactory::Generate | ( | const road::Lane & | lane, |
const double | s_start, | ||
const double | s_end ) const |
从给定的s起始和结束生成车道的网格
在文件 MeshFactory.cpp 第 67 行定义.
引用了 carla::geom::Mesh::AddMaterial(), carla::geom::Mesh::AddTriangleStrip(), DEBUG_ASSERT, carla::geom::Mesh::EndMaterial(), carla::geom::MeshFactory::RoadParameters::extra_lane_width, carla::road::Lane::GetCornerPositions(), carla::road::Lane::GetDistance(), carla::road::Lane::GetId(), carla::road::Lane::GetLength(), carla::road::Lane::GetType(), carla::road::Lane::IsStraight(), carla::geom::MESH_EPSILON, RELEASE_ASSERT, carla::geom::MeshFactory::RoadParameters::resolution, road_param , 以及 carla::road::Lane::Sidewalk.
std::unique_ptr< Mesh > carla::geom::MeshFactory::Generate | ( | const road::LaneSection & | lane_section | ) | const |
生成定义一段车道的网格
在文件 MeshFactory.cpp 第 44 行定义.
引用了 Generate() , 以及 carla::road::LaneSection::GetLanes().
std::unique_ptr< Mesh > carla::geom::MeshFactory::Generate | ( | const road::Road & | road | ) | const |
生成定义一条道路的网格
在文件 MeshFactory.cpp 第 35 行定义.
引用了 Generate() , 以及 carla::road::Road::GetLaneSections().
被这些函数引用 Generate(), Generate(), Generate() , 以及 GenerateWithMaxLen().
void carla::geom::MeshFactory::GenerateAllOrderedWithMaxLen | ( | const road::Road & | road, |
std::map< road::Lane::LaneType, std::vector< std::unique_ptr< Mesh > > > & | roads ) const |
std::vector< std::unique_ptr< Mesh > > carla::geom::MeshFactory::GenerateAllWithMaxLen | ( | const road::Road & | road | ) | const |
生成带有所有模拟所需特性的分块道路
在文件 MeshFactory.cpp 第 717 行定义.
引用了 GenerateWallsWithMaxLen(), GenerateWithMaxLen() , 以及 carla::road::Road::IsJunction().
void carla::geom::MeshFactory::GenerateLaneMarkForRoad | ( | const road::Road & | road, |
std::vector< std::unique_ptr< Mesh > > & | inout, | ||
std::vector< std::string > & | outinfo ) const |
为道路生成车道标记
在文件 MeshFactory.cpp 第 761 行定义.
引用了 carla::road::Lane::Bidirectional, carla::road::Lane::Driving, carla::road::Lane::None , 以及 carla::road::Lane::Parking.
void carla::geom::MeshFactory::GenerateLaneMarksForCenterLine | ( | const road::Road & | road, |
const road::LaneSection & | lane_section, | ||
const road::Lane & | lane, | ||
std::vector< std::unique_ptr< Mesh > > & | inout, | ||
std::vector< std::string > & | outinfo ) const |
仅为中心线(ID为0的线)生成车道标记
在文件 MeshFactory.cpp 第 917 行定义.
引用了 carla::geom::Mesh::AddIndex(), carla::geom::Mesh::AddVertex(), carla::road::element::DirectedPoint::ApplyLateralOffset(), carla::road::element::LaneMarking::BottsDots, carla::road::element::LaneMarking::Broken, carla::road::element::LaneMarking::BrokenBroken, carla::road::element::LaneMarking::BrokenSolid, ComputeEdgesForLanemark(), carla::road::element::LaneMarking::Curb, carla::road::Road::GetDirectedPointIn(), carla::road::LaneSection::GetDistance(), carla::road::Lane::GetInfo(), carla::road::LaneSection::GetLength(), carla::geom::Mesh::GetVertices(), carla::road::element::LaneMarking::Grass, carla::geom::Mesh::IsValid(), carla::road::element::DirectedPoint::location, carla::road::element::LaneMarking::Other, carla::geom::MeshFactory::RoadParameters::resolution, road_param, carla::road::element::LaneMarking::Solid, carla::road::element::LaneMarking::SolidBroken, carla::road::element::LaneMarking::SolidSolid, carla::road::element::LaneMarking::type, carla::road::element::LaneMarking::width , 以及 carla::geom::Vector3D::y.
void carla::geom::MeshFactory::GenerateLaneMarksForNotCenterLine | ( | const road::LaneSection & | lane_section, |
const road::Lane & | lane, | ||
std::vector< std::unique_ptr< Mesh > > & | inout, | ||
std::vector< std::string > & | outinfo ) const |
为非中心线(即ID不为0的所有线)生成车道标记
在文件 MeshFactory.cpp 第 790 行定义.
引用了 carla::geom::Mesh::AddIndex(), carla::geom::Mesh::AddVertex(), carla::road::element::LaneMarking::BottsDots, carla::road::element::LaneMarking::Broken, carla::road::element::LaneMarking::BrokenBroken, carla::road::element::LaneMarking::BrokenSolid, ComputeEdgesForLanemark(), carla::road::element::LaneMarking::Curb, carla::road::LaneSection::GetDistance(), carla::road::Lane::GetInfo(), carla::road::LaneSection::GetLength(), carla::geom::Mesh::GetVertices(), carla::road::element::LaneMarking::Grass, carla::geom::Mesh::IsValid(), carla::road::element::LaneMarking::Other, carla::geom::MeshFactory::RoadParameters::resolution, road_param, carla::road::element::LaneMarking::Solid, carla::road::element::LaneMarking::SolidBroken, carla::road::element::LaneMarking::SolidSolid, carla::road::element::LaneMarking::type , 以及 carla::road::element::LaneMarking::width.
void carla::geom::MeshFactory::GenerateLaneSectionOrdered | ( | const road::LaneSection & | lane_section, |
std::map< carla::road::Lane::LaneType, std::vector< std::unique_ptr< Mesh > > > & | result ) const |
生成按顺序排列的车道段网格
在文件 MeshFactory.cpp 第 200 行定义.
引用了 carla::road::Lane::Bidirectional, carla::road::Lane::Biking, carla::road::Lane::Driving, GenerateSidewalk(), GenerateTesselated(), carla::road::LaneSection::GetLanes(), carla::road::Lane::Parking, road_param, SelectVerticesInWidth(), carla::road::Lane::Shoulder, carla::road::Lane::Sidewalk , 以及 carla::geom::MeshFactory::RoadParameters::vertex_width_resolution.
被这些函数引用 GenerateOrderedWithMaxLen().
std::unique_ptr< Mesh > carla::geom::MeshFactory::GenerateLeftWall | ( | const road::Lane & | lane, |
const double | s_start, | ||
const double | s_end ) const |
在车道的左侧生成一个墙状网格
在文件 MeshFactory.cpp 第 448 行定义.
引用了 carla::geom::Mesh::AddMaterial(), carla::geom::Mesh::AddTriangleStrip(), DEBUG_ASSERT, carla::geom::Mesh::EndMaterial(), carla::geom::MeshFactory::RoadParameters::extra_lane_width, carla::road::Lane::GetCornerPositions(), carla::road::Lane::GetDistance(), carla::road::Lane::GetId(), carla::road::Lane::GetLength(), carla::road::Lane::GetType(), carla::road::Lane::IsStraight(), carla::geom::MESH_EPSILON, RELEASE_ASSERT, carla::geom::MeshFactory::RoadParameters::resolution, road_param, carla::road::Lane::Sidewalk , 以及 carla::geom::MeshFactory::RoadParameters::wall_height.
被这些函数引用 GenerateWalls() , 以及 GenerateWallsWithMaxLen().
std::map< road::Lane::LaneType, std::vector< std::unique_ptr< Mesh > > > carla::geom::MeshFactory::GenerateOrderedWithMaxLen | ( | const road::LaneSection & | lane_section | ) | const |
生成一个定义车道段的按顺序排列的网格列表,限制最大长度
在文件 MeshFactory.cpp 第 553 行定义.
引用了 carla::road::Lane::Bidirectional, carla::road::Lane::Biking, carla::road::Lane::Driving, carla::geom::EPSILON, GenerateLaneSectionOrdered(), GenerateSidewalk(), GenerateTesselated(), carla::road::LaneSection::GetDistance(), carla::road::LaneSection::GetLanes(), carla::road::LaneSection::GetLength(), carla::geom::MeshFactory::RoadParameters::max_road_len, carla::road::Lane::Parking, road_param, SelectVerticesInWidth(), carla::road::Lane::Shoulder, carla::road::Lane::Sidewalk , 以及 carla::geom::MeshFactory::RoadParameters::vertex_width_resolution.
std::map< road::Lane::LaneType, std::vector< std::unique_ptr< Mesh > > > carla::geom::MeshFactory::GenerateOrderedWithMaxLen | ( | const road::Road & | road | ) | const |
生成一个定义道路的按顺序排列的网格列表,限制最大长度
在文件 MeshFactory.cpp 第 541 行定义.
引用了 GenerateOrderedWithMaxLen() , 以及 carla::road::Road::GetLaneSections().
被这些函数引用 GenerateAllOrderedWithMaxLen() , 以及 GenerateOrderedWithMaxLen().
std::unique_ptr< Mesh > carla::geom::MeshFactory::GenerateRightWall | ( | const road::Lane & | lane, |
const double | s_start, | ||
const double | s_end ) const |
在车道的右侧生成一个墙状网格
在文件 MeshFactory.cpp 第 398 行定义.
引用了 carla::geom::Mesh::AddMaterial(), carla::geom::Mesh::AddTriangleStrip(), DEBUG_ASSERT, carla::geom::Mesh::EndMaterial(), carla::geom::MeshFactory::RoadParameters::extra_lane_width, carla::road::Lane::GetCornerPositions(), carla::road::Lane::GetDistance(), carla::road::Lane::GetId(), carla::road::Lane::GetLength(), carla::road::Lane::GetType(), carla::road::Lane::IsStraight(), carla::geom::MESH_EPSILON, RELEASE_ASSERT, carla::geom::MeshFactory::RoadParameters::resolution, road_param, carla::road::Lane::Sidewalk , 以及 carla::geom::MeshFactory::RoadParameters::wall_height.
被这些函数引用 GenerateWalls() , 以及 GenerateWallsWithMaxLen().
std::unique_ptr< Mesh > carla::geom::MeshFactory::GenerateSidewalk | ( | const road::Lane & | lane | ) | const |
生成车道的人行道网格
在文件 MeshFactory.cpp 第 256 行定义.
引用了 carla::geom::EPSILON, GenerateSidewalk(), carla::road::Lane::GetDistance() , 以及 carla::road::Lane::GetLength().
std::unique_ptr< Mesh > carla::geom::MeshFactory::GenerateSidewalk | ( | const road::Lane & | lane, |
const double | s_start, | ||
const double | s_end ) const |
从给定的s起始和结束生成车道的人行道网格
在文件 MeshFactory.cpp 第 262 行定义.
引用了 carla::geom::Mesh::AddIndex(), carla::geom::Mesh::AddMaterial(), carla::geom::Mesh::AddUVs(), carla::geom::Mesh::AddVertices(), DEBUG_ASSERT, carla::geom::Mesh::EndMaterial(), carla::geom::MeshFactory::RoadParameters::extra_lane_width, carla::road::Lane::GetCornerPositions(), carla::road::Lane::GetDistance(), carla::road::Lane::GetId(), carla::road::Lane::GetLength(), carla::road::Lane::GetType(), carla::geom::MESH_EPSILON, RELEASE_ASSERT, carla::geom::MeshFactory::RoadParameters::resolution, road_param , 以及 carla::road::Lane::Sidewalk.
std::unique_ptr< Mesh > carla::geom::MeshFactory::GenerateSidewalk | ( | const road::LaneSection & | lane_section | ) | const |
生成车道段的人行道网格
在文件 MeshFactory.cpp 第 247 行定义.
引用了 carla::geom::EPSILON, GenerateSidewalk() , 以及 carla::road::LaneSection::GetLanes().
被这些函数引用 GenerateLaneSectionOrdered(), GenerateOrderedWithMaxLen(), GenerateSidewalk() , 以及 GenerateSidewalk().
std::unique_ptr< Mesh > carla::geom::MeshFactory::GenerateTesselated | ( | const road::Lane & | lane | ) | const |
生成定义整个车道的网格,使用更高的细分
在文件 MeshFactory.cpp 第 60 行定义.
引用了 carla::geom::EPSILON, GenerateTesselated(), carla::road::Lane::GetDistance() , 以及 carla::road::Lane::GetLength().
std::unique_ptr< Mesh > carla::geom::MeshFactory::GenerateTesselated | ( | const road::Lane & | lane, |
const double | s_start, | ||
const double | s_end ) const |
用更高的细分生成从给定的s起始和结束的车道网格
在文件 MeshFactory.cpp 第 119 行定义.
引用了 carla::geom::Mesh::AddIndex(), carla::geom::Mesh::AddMaterial(), carla::geom::Mesh::AddUVs(), carla::geom::Mesh::AddVertices(), DEBUG_ASSERT, carla::geom::Mesh::EndMaterial(), carla::geom::EPSILON, carla::geom::MeshFactory::RoadParameters::extra_lane_width, carla::road::Lane::GetCornerPositions(), carla::road::Lane::GetDistance(), carla::road::Lane::GetId(), carla::road::Lane::GetLength(), carla::road::Lane::GetType(), carla::geom::MESH_EPSILON, RELEASE_ASSERT, carla::geom::MeshFactory::RoadParameters::resolution, road_param, carla::road::Lane::Sidewalk , 以及 carla::geom::MeshFactory::RoadParameters::vertex_width_resolution.
被这些函数引用 GenerateLaneSectionOrdered(), GenerateOrderedWithMaxLen() , 以及 GenerateTesselated().
std::unique_ptr< Mesh > carla::geom::MeshFactory::GenerateWalls | ( | const road::LaneSection & | lane_section | ) | const |
生成一个网格,表示道路角落的墙,以避免车辆掉下去
在文件 MeshFactory.cpp 第 374 行定义.
引用了 carla::geom::EPSILON, GenerateLeftWall(), GenerateRightWall() , 以及 carla::road::LaneSection::GetLanes().
被这些函数引用 GenerateWallsWithMaxLen().
std::vector< std::unique_ptr< Mesh > > carla::geom::MeshFactory::GenerateWallsWithMaxLen | ( | const road::LaneSection & | lane_section | ) | const |
生成一个定义车道段安全墙的网格列表,限制最大长度
在文件 MeshFactory.cpp 第 671 行定义.
引用了 carla::geom::EPSILON, GenerateLeftWall(), GenerateRightWall(), GenerateWalls(), carla::road::LaneSection::GetDistance(), carla::road::LaneSection::GetLanes(), carla::road::LaneSection::GetLength(), carla::geom::MeshFactory::RoadParameters::max_road_len , 以及 road_param.
std::vector< std::unique_ptr< Mesh > > carla::geom::MeshFactory::GenerateWallsWithMaxLen | ( | const road::Road & | road | ) | const |
生成一个定义道路安全墙的网格列表,限制最大长度
在文件 MeshFactory.cpp 第 658 行定义.
引用了 GenerateWallsWithMaxLen() , 以及 carla::road::Road::GetLaneSections().
被这些函数引用 GenerateAllWithMaxLen() , 以及 GenerateWallsWithMaxLen().
std::vector< std::unique_ptr< Mesh > > carla::geom::MeshFactory::GenerateWithMaxLen | ( | const road::LaneSection & | lane_section | ) | const |
生成一个定义车道段的网格列表,限制最大长度
在文件 MeshFactory.cpp 第 513 行定义.
引用了 carla::geom::EPSILON, Generate(), carla::road::LaneSection::GetDistance(), carla::road::LaneSection::GetLanes(), carla::road::LaneSection::GetLength(), carla::geom::MeshFactory::RoadParameters::max_road_len , 以及 road_param.
std::vector< std::unique_ptr< Mesh > > carla::geom::MeshFactory::GenerateWithMaxLen | ( | const road::Road & | road | ) | const |
生成一个定义道路的网格列表,限制最大长度
在文件 MeshFactory.cpp 第 499 行定义.
引用了 GenerateWithMaxLen() , 以及 carla::road::Road::GetLaneSections().
被这些函数引用 GenerateAllWithMaxLen() , 以及 GenerateWithMaxLen().
std::unique_ptr< Mesh > carla::geom::MeshFactory::MergeAndSmooth | ( | std::vector< std::unique_ptr< Mesh > > & | lane_meshes | ) | const |
合并并平滑多个车道网格
在文件 MeshFactory.cpp 第 1147 行定义.
引用了 carla::geom::GetVertexNeighborhoodAndWeights(), road_param , 以及 carla::geom::Vector3D::z.
|
static |
在给定车道类型下选择的宽度内的顶点数量
在文件 MeshFactory.cpp 第 1183 行定义.
引用了 carla::road::Lane::Bidirectional, carla::road::Lane::Biking, carla::road::Lane::Driving, carla::road::Lane::Parking, carla::road::Lane::Shoulder , 以及 carla::road::Lane::Sidewalk.
被这些函数引用 GenerateLaneSectionOrdered() , 以及 GenerateOrderedWithMaxLen().
RoadParameters carla::geom::MeshFactory::road_param |
在文件 MeshFactory.h 第 160 行定义.
被这些函数引用 ComputeEdgesForLanemark(), Generate(), GenerateLaneMarksForCenterLine(), GenerateLaneMarksForNotCenterLine(), GenerateLaneSectionOrdered(), GenerateLeftWall(), GenerateOrderedWithMaxLen(), GenerateRightWall(), GenerateSidewalk(), GenerateTesselated(), GenerateWallsWithMaxLen(), GenerateWithMaxLen(), MergeAndSmooth() , 以及 MeshFactory().