CARLA
 
载入中...
搜索中...
未找到
WorldSnapshot.h
浏览该文件的文档.
1// Copyright (c) 2019 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/client/Timestamp.h" // 引入时间戳相关的头文件
10#include "carla/client/ActorSnapshot.h" // 引入参与者快照相关的头文件
11#include "carla/client/detail/EpisodeState.h" // 引入剧集状态相关的头文件
12
13
14#include <boost/optional.hpp> // 引入 Boost 库中的 optional,用于表示可能为空的值
15
16namespace carla {
17namespace client {
18 // WorldSnapshot 类表示一个世界快照,它包含了与世界相关的所有状态信息
20 public:
21 // 构造函数,接收一个指向 EpisodeState 的共享指针,并将其存储在 _state 成员变量中
22 WorldSnapshot(std::shared_ptr<const detail::EpisodeState> state)
23 : _state(std::move(state)) {}
24
25 // 获取与该世界快照关联的剧集 ID
26 uint64_t GetId() const {
27 return _state->GetEpisodeId();
28 }
29 // 获取当前世界快照的帧编号
30 size_t GetFrame() const {
31 return GetTimestamp().frame;
32 }
33
34 // 获取世界快照的时间戳
35 const Timestamp &GetTimestamp() const {
36 return _state->GetTimestamp();
37 }
38
39 // 检查指定的 Actor 是否在当前世界快照中
40 bool Contains(ActorId actor_id) const {
41 return _state->ContainsActorSnapshot(actor_id);
42 }
43
44 // 根据 ActorId 查找相应的 Actor 快照,如果找到了则返回 ActorSnapshot,否则返回 boost::none
45 boost::optional<ActorSnapshot> Find(ActorId actor_id) const {
46 return _state->GetActorSnapshotIfPresent(actor_id);
47 }
48
49 // 获取当前世界快照中参与者快照的数量
50 size_t size() const {
51 return _state->size();
52 }
53
54 // 获取指向世界快照中所有参与者快照列表的开始迭代器
55 auto begin() const {
56 return _state->begin();
57 }
58
59 // 获取指向世界快照中所有参与者快照列表的结束迭代器
60 auto end() const {
61 return _state->end();
62 }
63
64 // 重载等于运算符,比较两个 WorldSnapshot 对象是否相等
65 // 只有在时间戳相同的情况下,两个快照才视为相等
66 bool operator==(const WorldSnapshot &rhs) const {
67 return GetTimestamp() == rhs.GetTimestamp();
68 }
69 // 重载不等于运算符,判断两个 WorldSnapshot 对象是否不相等
70 bool operator!=(const WorldSnapshot &rhs) const {
71 return !(*this == rhs);
72 }
73
74 private:
75 // 存储与该世界快照相关的剧集状态
76 std::shared_ptr<const detail::EpisodeState> _state;
77 };
78
79} // namespace client
80} // namespace carla
std::size_t frame
自模拟器启动以来经过的帧数。
Definition Timestamp.h:37
bool Contains(ActorId actor_id) const
std::shared_ptr< const detail::EpisodeState > _state
const Timestamp & GetTimestamp() const
bool operator!=(const WorldSnapshot &rhs) const
bool operator==(const WorldSnapshot &rhs) const
WorldSnapshot(std::shared_ptr< const detail::EpisodeState > state)
boost::optional< ActorSnapshot > Find(ActorId actor_id) const
carla::ActorId ActorId
参与者的智能指针类型
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
包含CARLA客户端相关类和函数的命名空间。