CARLA
载入中...
搜索中...
未找到
LibCarla
source
carla
rpc
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)的头文件,通常用于定义物体在空间中的范围等
12
#include "
carla/geom/BoundingBox.h
"
13
// 包含用于描述Actor(在Carla模拟环境中可能指代各种实体对象,比如车辆、行人等)的相关信息的头文件
14
#include "
carla/rpc/ActorDescription.h
"
15
// 包含用于表示Actor唯一标识符(ID)的头文件
16
#include "
carla/rpc/ActorId.h
"
17
// 包含用于处理流相关的Token(令牌,可能在数据传输、流处理等场景使用)的头文件
18
#include "
carla/streaming/Token.h
"
19
20
#include <cstring>
21
22
namespace
carla
{
23
namespace
rpc {
24
25
// 定义Actor类,在Carla的RPC(远程过程调用)机制相关场景下,该类大概率用于表示模拟环境中的各种可交互实体
26
class
Actor
{
27
public
:
28
// 默认构造函数,使用编译器默认生成的版本,不进行额外的初始化操作
29
Actor
() =
default
;
30
31
// Actor的唯一标识符,用于在整个模拟环境中区分不同的Actor,初始化为0(可能后续会有赋值操作来赋予其真实的ID值)
32
ActorId
id
= 0u;
33
34
// 父Actor的ID,用于表示当前Actor所属的父级对象(例如在有层级关系的场景中,子物体关联到父物体的情况),初始化为0
35
ActorId
parent_id
= 0u;
36
37
// 用于描述Actor详细信息的结构体,包含诸如类型、属性等相关描述内容
38
ActorDescription
description
;
39
40
// 用于表示Actor在空间中的边界框信息,比如位置、大小范围等,可用于碰撞检测等功能
41
geom::BoundingBox
bounding_box
;
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对象中并返回该对象
59
streaming::Token
GetStreamToken
()
const
{
60
DEBUG_ASSERT
(
HasAStream
());
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类在进行消息打包(可能用于网络传输、序列化等场景)时包含的成员变量
68
MSGPACK_DEFINE_ARRAY
(
id
,
parent_id
,
description
,
bounding_box
,
semantic_tags
,
stream_token
);
69
};
70
71
}
// namespace rpc
72
}
// namespace carla
ActorId.h
Debug.h
DEBUG_ASSERT
#define DEBUG_ASSERT(predicate)
Definition
Debug.h:68
BoundingBox.h
ActorDescription.h
Token.h
carla::geom::BoundingBox
Definition
LibCarla/source/carla/geom/BoundingBox.h:35
carla::rpc::ActorDescription
Definition
LibCarla/source/carla/rpc/ActorDescription.h:26
carla::rpc::Actor
Definition
rpc/Actor.h:26
carla::rpc::Actor::stream_token
std::vector< unsigned char > stream_token
Definition
rpc/Actor.h:50
carla::rpc::Actor::GetStreamToken
streaming::Token GetStreamToken() const
Definition
rpc/Actor.h:59
carla::rpc::Actor::semantic_tags
std::vector< uint8_t > semantic_tags
Definition
rpc/Actor.h:44
carla::rpc::Actor::HasAStream
bool HasAStream() const
Definition
rpc/Actor.h:53
carla::rpc::Actor::MSGPACK_DEFINE_ARRAY
MSGPACK_DEFINE_ARRAY(id, parent_id, description, bounding_box, semantic_tags, stream_token)
carla::rpc::Actor::parent_id
ActorId parent_id
Definition
rpc/Actor.h:35
carla::rpc::Actor::Actor
Actor()=default
carla::rpc::Actor::description
ActorDescription description
Definition
rpc/Actor.h:38
carla::rpc::Actor::bounding_box
geom::BoundingBox bounding_box
Definition
rpc/Actor.h:41
carla::streaming::Token
Definition
Token.h:17
carla::streaming::Token::data
std::array< unsigned char, 24u > data
Definition
Token.h:20
carla::rpc::ActorId
uint32_t ActorId
Definition
ActorId.h:20
carla
CARLA模拟器的主命名空间。
Definition
Carla.cpp:139
制作者
1.10.0