CARLA
 
载入中...
搜索中...
未找到
ActorList.cpp
浏览该文件的文档.
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#include "carla/client/ActorList.h" // 引入参与者列表类的头文件
8
9#include "carla/StringUtil.h" // 引入字符串工具类的头文件
10#include "carla/client/detail/ActorFactory.h" // 引入参与者工厂类的头文件
11
12#include <iterator> // 引入迭代器相关的标准库
13
14namespace carla {
15namespace client {
16
17 ActorList::ActorList( // 参与者列表构造函数
18 detail::EpisodeProxy episode, // 传入的场景代理对象
19 std::vector<rpc::Actor> actors) // 传入的参与者列表
20 : _episode(std::move(episode)), // 移动语义传递场景代理
21 _actors(std::make_move_iterator(actors.begin()), std::make_move_iterator(actors.end())) {} // 使用移动迭代器初始化参与者列表
22
23 SharedPtr<Actor> ActorList::Find(const ActorId actor_id) const { // 查找指定ID的参与者
24 for (auto &actor : _actors) { // 遍历所有参与者
25 if (actor_id == actor.GetId()) { // 如果找到匹配的ID
26 return actor.Get(_episode); // 返回参与者的共享指针
27 }
28 }
29 return nullptr; // 如果未找到,返回空指针
30 }
31
32 SharedPtr<ActorList> ActorList::Filter(const std::string &wildcard_pattern) const { // 根据通配符模式过滤参与者
33 SharedPtr<ActorList> filtered (new ActorList(_episode, {})); // 创建一个新的参与者列表用于存放过滤后的参与者
34 for (auto &&actor : _actors) { // 遍历所有参与者
35 if (StringUtil::Match(actor.GetTypeId(), wildcard_pattern)) { // 如果参与者类型与通配符匹配
36 filtered->_actors.push_back(actor); // 将匹配的参与者加入到过滤后的列表中
37 }
38 }
39 return filtered; // 返回过滤后的参与者列表
40 }
41
42} // namespace client
43} // namespace carla
44
auto end() const noexcept
auto begin() const noexcept
名称范围迭代支持
static bool Match(const char *str, const char *wildcard_pattern)
Match str with the Unix shell-style wildcard_pattern.
std::vector< detail::ActorVariant > _actors
Definition ActorList.h:76
SharedPtr< ActorList > Filter(const std::string &wildcard_pattern) const
根据提供的通配符模式(wildcard_pattern)过滤符合条件的参与者列表。
Definition ActorList.cpp:32
detail::EpisodeProxy _episode
Definition ActorList.h:74
SharedPtr< Actor > Find(ActorId actor_id) const
根据指定的 actor_id 查找对应的参与者(Actor)。
Definition ActorList.cpp:23
ActorList(detail::EpisodeProxy episode, std::vector< rpc::Actor > actors)
Definition ActorList.cpp:17
carla::ActorId ActorId
参与者的智能指针类型
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
boost::shared_ptr< T > SharedPtr
使用这个SharedPtr(boost::shared_ptr)以保持与boost::python的兼容性, 但未来如果可能的话,我们希望能为std::shared_ptr制作一个Python适配器。
Definition Memory.h:19
包含CARLA客户端相关类和函数的命名空间。