19 template <
typename RangeT>
27 static auto GetSize(
const TArray<T> &Array)
34 template <
typename T,
typename RangeT,
typename FuncT>
39 for (
auto &&Item : Range)
41 Result.Emplace(TransformFunction(Item));
47 template <
typename T,
typename RangeT>
50 return TransformToTArray<T>(
51 std::forward<RangeT>(Range),
52 [](
auto &&Item) {
return T{Item}; });
59 : Super(ObjectInitializer) {}
66 carla::rpc::FromLongFString(XODRContent));
70 Map = std::move(*ResultMap);
82 auto Result =
Map->GetClosestWaypointOnRoad(Location);
93 if (ApproxDistance < 1.0f)
95 UE_LOG(LogCarla, Error, TEXT(
"GenerateWaypoints: Please provide an ApproxDistance greater than 1 centimetre."));
102 return TransformToTArray<FWaypoint>(
Map->GenerateWaypoints(ApproxDistance / 1e2f));
112 return TransformToTArray<FWaypointConnection>(
Map->GenerateTopology(), [](
auto &&Item) {
113 return FWaypointConnection{FWaypoint{Item.first}, FWaypoint{Item.second}};
123 return TransformToTArray<FWaypoint>(
Map->GenerateWaypointsOnRoadEntries());
138 return TransformToTArray<FVector>(Waypoints, [
this](
auto &&Waypoint) {
156 return TransformToTArray<FTransform>(Waypoints, [
this](
auto &&Waypoint) {
167 UE_LOG(LogCarla, Error, TEXT(
"GetNext: Please provide a Distance greater than 1 centimetre."));
173 return TransformToTArray<FWaypoint>(
Map->GetNext(Waypoint.
Waypoint, Distance / 1e2f));
UE_LOG(LogCarla, Log, TEXT("UActorDispatcher::Destroying actor: '%s' %x"), *Id, Actor)
地图类的前向声明,用于在LaneInvasionSensor类中可能的引用。
TArray< FWaypointConnection > GenerateTopology() const
生成定义此拓扑的最小航路点集地图。航点位于每条车道的入口处。
bool Load(const FString &XODRContent)
使用OpenDrive(XODR)文件加载此映射。
TArray< FWaypoint > GenerateWaypointsOnRoadEntries() const
在每条道路的起点,在每条车道上生成航点。
bool HasMap() const
返回此映射是否已初始化。
TArray< FVector > ComputeLocations(const TArray< FWaypoint > &Waypoints) const
计算航点数组的位置。
TArray< FTransform > ComputeTransforms(const TArray< FWaypoint > &Waypoints) const
计算航点数组的变换。
FVector ComputeLocation(FWaypoint Waypoint) const
计算航点的位置。
FTransform ComputeTransform(FWaypoint Waypoint) const
计算航点的变换。x轴指向该航点的道路方向。
TArray< FWaypoint > GetNext(FWaypoint Waypoint, float Distance=100.0f) const
返回给定距离上的航点列表,以便位于航点的车辆可以行驶得到。
FWaypoint GetClosestWaypointOnRoad(FVector Location, bool &Success) const
给定一个位置,返回车道中心最近的点。
TArray< FWaypoint > GenerateWaypoints(float ApproxDistance=100.0f) const
在地图上以近似距离生成航路点。
UOpenDriveMap(const FObjectInitializer &ObjectInitializer)
static boost::optional< road::Map > Load(const std::string &opendrive)
static auto GetSize(const RangeT &Range)
static TArray< T > TransformToTArray(RangeT &&Range, FuncT &&TransformFunction)
carla::road::element::Waypoint Waypoint