CARLA
 
载入中...
搜索中...
未找到
LibCarla/source/carla/rpc/ActorDescription.h
浏览该文件的文档.
1// Copyright (c) 2017 Computer Vision Center (CVC) at the Universitat Autonoma
2// de Barcelona (UAB).
3//
4// This work is licensed under the terms of the MIT license.
5// For a copy, see <https://opensource.org/licenses/MIT>.
6
7#pragma once
8// 防止头文件重复包含的编译指令。
9#include "carla/MsgPack.h"
11#include "carla/rpc/ActorId.h"
12#include "carla/rpc/String.h"
13// 引入Carla项目中的相关头文件,提供消息打包、Actor属性、Actor ID以及字符串相关的支持。
14
15#include <vector>
16//标题库的头文件,用于处理动态信息组。
17#ifdef LIBCARLA_INCLUDED_FROM_UE4 // 如果是从UE4引入的代码块,则启用UE4相关的宏。
21#endif // LIBCARLA_INCLUDED_FROM_UE4
22// 用于在UE4环境中加载特定的头文件,并切换特定的编译宏。
23namespace carla {
24namespace rpc {
25
27 public:
28
29 ActorDescription() = default; // 默认构造函数。
30
31 ActorId uid = 0u; // 定义Actor的唯一标识符,初始值为0。
32
33 std::string id; // Actor的类型标识符,例如“车辆”或“行人”。
34
35 std::vector<ActorAttributeValue> attributes;// Actor的属性列表,例如颜色、车型等。
36
37
38#ifdef LIBCARLA_INCLUDED_FROM_UE4
39
41 : uid(Description.UId),
42 id(FromFString(Description.Id)) {
43 // 从UE4的FActorDescription结构体转换为当前类的构造函数。
44 // 将UE4的字符串类型转换为标准字符串,并初始化`uid`和`id`。
45 attributes.reserve(Description.Variations.Num()); // 预留空间存储所有属性。
46 for (const auto &Item : Description.Variations) {
47 attributes.emplace_back(Item.Value);
48 }
49 // 遍历FActorDescription的Variations,将其转换并存储到attributes中。
50 }
51
52 operator FActorDescription() const { // 将当前类转换为UE4的FActorDescription类型的操作符重载。
53 FActorDescription Description;
54 Description.UId = uid; // 设置UID。
55 Description.Id = ToFString(id); // 将标准字符串转换为UE4字符串类型。
56 Description.Variations.Reserve(attributes.size());// 为Variations分配内存。
57 for (const auto &item : attributes) {
58 Description.Variations.Emplace(ToFString(item.id), item);// 将当前类的属性逐一添加到UE4结构体的Variations中。
59 }
60 return Description;
61 }
62
63#endif // LIBCARLA_INCLUDED_FROM_UE4
64
66 // 定义用于序列化和反序列化的MsgPack宏,将uid、id和attributes打包为数组形式。
67 };
68
69} // namespace rpc
70} // namespace carla
ActorDescription(const FActorDescription &Description)
MSGPACK_DEFINE_ARRAY(uid, id, attributes)
uint32_t ActorId
Definition ActorId.h:20
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
TMap< FString, FActorAttribute > Variations
用户选择了参与者的变化版本。请注意,此时是 由不可修改的属性表示