CARLA
 
载入中...
搜索中...
未找到
rpc/Actor.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// 包含Carla相关的调试头文件,可能用于输出调试信息等功能
10#include "carla/Debug.h"
11// 包含用于表示几何边界框(Bounding Box)的头文件,通常用于定义物体在空间中的范围等
13// 包含用于描述Actor(在Carla模拟环境中可能指代各种实体对象,比如车辆、行人等)的相关信息的头文件
15// 包含用于表示Actor唯一标识符(ID)的头文件
16#include "carla/rpc/ActorId.h"
17// 包含用于处理流相关的Token(令牌,可能在数据传输、流处理等场景使用)的头文件
19
20#include <cstring>
21
22namespace carla {
23namespace rpc {
24
25// 定义Actor类,在Carla的RPC(远程过程调用)机制相关场景下,该类大概率用于表示模拟环境中的各种可交互实体
26class Actor {
27public:
28 // 默认构造函数,使用编译器默认生成的版本,不进行额外的初始化操作
29 Actor() = default;
30
31 // Actor的唯一标识符,用于在整个模拟环境中区分不同的Actor,初始化为0(可能后续会有赋值操作来赋予其真实的ID值)
32 ActorId id = 0u;
33
34 // 父Actor的ID,用于表示当前Actor所属的父级对象(例如在有层级关系的场景中,子物体关联到父物体的情况),初始化为0
36
37 // 用于描述Actor详细信息的结构体,包含诸如类型、属性等相关描述内容
39
40 // 用于表示Actor在空间中的边界框信息,比如位置、大小范围等,可用于碰撞检测等功能
42
43 // 语义标签的向量,可能用于给Actor赋予特定的语义含义,方便进行分类、筛选等操作,例如区分不同类型的车辆或者行人等
44 std::vector<uint8_t> semantic_tags;
45
46 /// @todo This is only used by sensors actually.
47 /// @name Sensor functionality
48 /// @{
49 // 存储流相关的Token数据,这里提到只被传感器实际使用,可能用于传感器数据的流传输时的标识、认证等功能
50 std::vector<unsigned char> stream_token;
51
52 // 函数用于判断当前Actor是否具有有效的流(通过检查流令牌的大小是否符合预期来判断)
53 bool HasAStream() const {
54 return stream_token.size() == sizeof(streaming::Token::data);
55 }
56
57 // 函数用于获取流令牌(Token),前提是已经通过HasAStream函数判断当前Actor存在有效的流。
58 // 它通过内存复制的方式将存储的流令牌数据复制到新的Token对象中并返回该对象
61 streaming::Token token;
62 std::memcpy(&token.data[0u], stream_token.data(), stream_token.size());
63 return token;
64 }
65 /// @}
66
67 // 使用MSGPACK_DEFINE_ARRAY宏来定义Actor类在进行消息打包(可能用于网络传输、序列化等场景)时包含的成员变量
69};
70
71} // namespace rpc
72} // namespace carla
#define DEBUG_ASSERT(predicate)
Definition Debug.h:68
std::vector< unsigned char > stream_token
Definition rpc/Actor.h:50
streaming::Token GetStreamToken() const
Definition rpc/Actor.h:59
std::vector< uint8_t > semantic_tags
Definition rpc/Actor.h:44
bool HasAStream() const
Definition rpc/Actor.h:53
MSGPACK_DEFINE_ARRAY(id, parent_id, description, bounding_box, semantic_tags, stream_token)
ActorId parent_id
Definition rpc/Actor.h:35
ActorDescription description
Definition rpc/Actor.h:38
geom::BoundingBox bounding_box
Definition rpc/Actor.h:41
std::array< unsigned char, 24u > data
Definition Token.h:20
uint32_t ActorId
Definition ActorId.h:20
CARLA模拟器的主命名空间。
Definition Carla.cpp:139