CARLA
 
载入中...
搜索中...
未找到
RoadInfoSignal.h
浏览该文件的文档.
1// Copyright (c) 2020 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/road/Signal.h" // 包含 Signal 的定义
10#include "carla/road/element/RoadInfo.h" // 包含 RoadInfo 的定义
11
12namespace carla { // 定义 carla 命名空间
13namespace road { // 定义 road 子命名空间
14namespace element { // 定义 element 子命名空间
15
16 class RoadInfoSignal final : public RoadInfo { // 定义 RoadInfoSignal 类,继承自 RoadInfo
17 public:
18
19 // 构造函数,接受信号 ID、信号对象、道路 ID、坐标 s、t 和方向
21 SignId signal_id, // 信号 ID
22 Signal* signal, // 信号对象指针
23 RoadId road_id, // 道路 ID
24 double s, // 坐标 s
25 double t, // 坐标 t
26 std::string orientation) // 方向字符串
27 : RoadInfo(s), // 初始化基类 RoadInfo
28 _signal_id(signal_id), // 初始化信号 ID
29 _signal(signal), // 初始化信号对象
30 _road_id(road_id), // 初始化道路 ID
31 _s(s), // 初始化坐标 s
32 _t(t), // 初始化坐标 t
33 _orientation(orientation) {} // 初始化方向
34
35 // 另一个构造函数,接受信号 ID、道路 ID、坐标 s、t 和方向
37 SignId signal_id, // 信号 ID
38 RoadId road_id, // 道路 ID
39 double s, // 坐标 s
40 double t, // 坐标 t
41 std::string orientation) // 方向字符串
42 : RoadInfo(s), // 初始化基类 RoadInfo
43 _signal_id(signal_id), // 初始化信号 ID
44 _road_id(road_id), // 初始化道路 ID
45 _s(s), // 初始化坐标 s
46 _t(t), // 初始化坐标 t
47 _orientation(orientation) {} // 初始化方向
48
49 // 接受访问者的函数
50 void AcceptVisitor(RoadInfoVisitor &v) final { // 重写接受访问者的方法
51 v.Visit(*this); // 调用访问者的 Visit 方法
52 }
53
54 // 获取信号 ID
55 SignId GetSignalId() const { // 返回信号 ID
56 return _signal_id; // 返回信号 ID
57 }
58
59 // 获取信号对象
60 const Signal* GetSignal() const { // 返回信号对象的常量指针
61 return _signal; // 返回信号对象
62 }
63
64 // 获取道路 ID
65 RoadId GetRoadId() const { // 返回道路 ID
66 return _road_id; // 返回道路 ID
67 }
68
69 // 判断信号是否是动态的
70 bool IsDynamic() const { // 返回信号是否动态
71 return _signal->GetDynamic(); // 调用信号对象的方法获取动态状态
72 }
73
74 // 获取坐标 s
75 double GetS() const { // 返回坐标 s
76 return _s; // 返回坐标 s
77 }
78
79 // 获取坐标 t
80 double GetT() const { // 返回坐标 t
81 return _t; // 返回坐标 t
82 }
83
84 // 获取信号的方向
85 SignalOrientation GetOrientation() const { // 返回信号方向
86 if(_orientation == "+") { // 如果方向为 "+"
87 return SignalOrientation::Positive; // 返回正向
88 } else if(_orientation == "-") { // 如果方向为 "-"
89 return SignalOrientation::Negative; // 返回反向
90 } else {
91 return SignalOrientation::Both; // 否则返回双向
92 }
93 }
94
95 // 获取有效车道信息
96 const std::vector<LaneValidity> &GetValidities() const { // 返回有效性向量的常量引用
97 return _validities; // 返回有效性向量
98 }
99
100 private:
101 friend MapBuilder; // 声明 MapBuilder 为友元类,允许其访问私有成员
102
103 SignId _signal_id; // 信号 ID
104 Signal* _signal; // 信号对象指针
105 RoadId _road_id; // 道路 ID
106 double _s; // 坐标 s
107 double _t; // 坐标 t
108 std::string _orientation; // 方向字符串
109 std::vector<LaneValidity> _validities; // 有效性向量
110 };
111
112} // namespace element
113} // namespace road
114} // namespace carla
bool GetDynamic() const
Definition Signal.h:96
void AcceptVisitor(RoadInfoVisitor &v) final
RoadInfoSignal(SignId signal_id, RoadId road_id, double s, double t, std::string orientation)
RoadInfoSignal(SignId signal_id, Signal *signal, RoadId road_id, double s, double t, std::string orientation)
std::vector< LaneValidity > _validities
const std::vector< LaneValidity > & GetValidities() const
SignalOrientation GetOrientation() const
SignalOrientation
Definition Signal.h:21
uint32_t RoadId
Definition RoadTypes.h:20
std::string SignId
Definition RoadTypes.h:35
CARLA模拟器的主命名空间。
Definition Carla.cpp:139