CARLA
 
载入中...
搜索中...
未找到
TrackTraffic.h
浏览该文件的文档.
1
2#pragma once
3
5#include "carla/rpc/ActorId.h"
6
8
9namespace carla {
10namespace traffic_manager {
11
13using ActorIdSet = std::unordered_set<ActorId>;
14using SimpleWaypointPtr = std::shared_ptr<SimpleWaypoint>;
15using Buffer = std::deque<SimpleWaypointPtr>;
17
18// 此类用于跟踪所有角色的航点占用情况
20
21private:
22 /// 用于跟踪车辆间重叠航点的结构
23 using WaypointOverlap = std::unordered_map<uint64_t, ActorIdSet>;
25
26 /// 用于跟踪车辆所占用航点的结构
27 using WaypointIdSet = std::unordered_set<uint64_t>;
28 using WaypointOccupancyMap = std::unordered_map<ActorId, WaypointIdSet>;
30
31 /// 参与者路径所占据的测地线网格
32 std::unordered_map<ActorId, std::unordered_set<GeoGridId>> actor_to_grids;
33 /// 参与者当前经过的网格
34 std::unordered_map<GeoGridId, ActorIdSet> grid_to_actors;
35 /// 当前英雄位置
37
38
39public:
41
42 /// 更新、移除和检索经过某一路点车辆的方法
43 void UpdatePassingVehicle(uint64_t waypoint_id, ActorId actor_id);
44 void RemovePassingVehicle(uint64_t waypoint_id, ActorId actor_id);
45 ActorIdSet GetPassingVehicles(uint64_t waypoint_id) const;
46
47 void UpdateGridPosition(const ActorId actor_id, const Buffer &buffer);
48 void UpdateUnregisteredGridPosition(const ActorId actor_id,
49 const std::vector<SimpleWaypointPtr> waypoints);
50
52 bool IsGeoGridFree(const GeoGridId geogrid_id) const;
53 void AddTakenGrid(const GeoGridId geogrid_id, const ActorId actor_id);
54
55 void SetHeroLocation(const cg::Location location);
57
58
59 /// 从跟踪中删除参与者数据的方法
60 void DeleteActor(ActorId actor_id);
61
62 void Clear();
63};
64
65} // namespace traffic_manager
66} // namespace carla
void UpdatePassingVehicle(uint64_t waypoint_id, ActorId actor_id)
更新、移除和检索经过某一路点车辆的方法
std::unordered_map< ActorId, std::unordered_set< GeoGridId > > actor_to_grids
参与者路径所占据的测地线网格
void UpdateGridPosition(const ActorId actor_id, const Buffer &buffer)
ActorIdSet GetPassingVehicles(uint64_t waypoint_id) const
cg::Location hero_location
当前英雄位置
std::unordered_map< uint64_t, ActorIdSet > WaypointOverlap
用于跟踪车辆间重叠航点的结构
ActorIdSet GetOverlappingVehicles(ActorId actor_id) const
bool IsGeoGridFree(const GeoGridId geogrid_id) const
std::unordered_set< uint64_t > WaypointIdSet
用于跟踪车辆所占用航点的结构
void UpdateUnregisteredGridPosition(const ActorId actor_id, const std::vector< SimpleWaypointPtr > waypoints)
std::unordered_map< ActorId, WaypointIdSet > WaypointOccupancyMap
void RemovePassingVehicle(uint64_t waypoint_id, ActorId actor_id)
void DeleteActor(ActorId actor_id)
从跟踪中删除参与者数据的方法
WaypointOccupancyMap waypoint_occupied
void AddTakenGrid(const GeoGridId geogrid_id, const ActorId actor_id)
void SetHeroLocation(const cg::Location location)
std::unordered_map< GeoGridId, ActorIdSet > grid_to_actors
参与者当前经过的网格
int32_t JuncId
Definition RoadTypes.h:23
std::deque< std::shared_ptr< SimpleWaypoint > > Buffer
std::shared_ptr< SimpleWaypoint > SimpleWaypointPtr
carla::ActorId ActorId
参与者的智能指针类型
std::unordered_set< ActorId > ActorIdSet
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
rpc::ActorId ActorId
Definition ActorId.h:26