CARLA
 
载入中...
搜索中...
未找到
Signal.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/Memory.h" // 引入内存管理头文件
10#include "carla/NonCopyable.h" // 引入不可复制的类
11#include "carla/road/RoadTypes.h" // 引入道路类型定义
12#include "carla/road/LaneValidity.h" // 引入车道有效性定义
13#include "carla/geom/Transform.h" // 引入几何变换定义
14
15#include <string> // 引入字符串库
16#include <vector> // 引入向量库
17
18namespace carla {
19namespace road {
20
21 enum SignalOrientation { // 定义信号方向枚举
22 Positive, // 正向
23 Negative, // 负向
24 Both // 双向
25 };
26
27 struct SignalDependency { // 信号依赖结构体
28 public:
29
30 SignalDependency( std::string dependency_id, std::string type) // 构造函数
31 : _dependency_id(dependency_id), _type(type) {} // 初始化成员变量
32
33 std::string _dependency_id; // 依赖ID
34 std::string _type; // 依赖类型
35
36 };
37
38 class Signal : private MovableNonCopyable { // 定义信号类,禁止拷贝
39 public:
40 Signal( // 构造函数
41 RoadId road_id, // 道路ID
42 SignId signal_id, // 信号ID
43 double s, // S坐标
44 double t, // T坐标
45 std::string name, // 信号名称
46 std::string dynamic, // 动态属性
47 std::string orientation, // 方向
48 double zOffset, // Z轴偏移
49 std::string country, // 国家
50 std::string type, // 类型
51 std::string subtype, // 子类型
52 double value, // 值
53 std::string unit, // 单位
54 double height, // 高度
55 double width, // 宽度
56 std::string text, // 文本
57 double hOffset, // 水平偏移
58 double pitch, // 俯仰角
59 double roll) // 横滚角
60 : _road_id(road_id),
61 _signal_id(signal_id),
62 _s(s),
63 _t(t),
64 _name(name),
65 _dynamic(dynamic),
66 _orientation(orientation),
67 _zOffset(zOffset),
68 _country(country),
69 _type(type),
70 _subtype(subtype),
71 _value(value),
72 _unit(unit),
73 _height(height),
74 _width(width),
75 _text(text),
76 _hOffset(hOffset),
77 _pitch(pitch),
78 _roll(roll) {} // 初始化所有成员变量
79
80 RoadId GetRoadId() const { // 获取道路ID
81 return _road_id;
82 }
83
84 const SignId &GetSignalId() const { // 获取信号ID
85 return _signal_id;
86 }
87
88 double GetS() const { // 获取S坐标
89 return _s;
90 }
91
92 double GetT() const { // 获取T坐标
93 return _t;
94 }
95
96 bool GetDynamic() const { // 获取动态属性
97 if(_dynamic == "yes") {
98 return true; // 如果动态属性为“yes”,返回true
99 } else {
100 return false; // 否则返回false
101 }
102 }
103
104 const std::string &GetName() const { // 获取信号名称
105 return _name;
106 }
107
108 SignalOrientation GetOrientation() const { // 获取信号方向
109 if(_orientation == "+") {
110 return SignalOrientation::Positive; // 正向
111 } else if(_orientation == "-") {
112 return SignalOrientation::Negative; // 负向
113 } else {
114 return SignalOrientation::Both; // 双向
115 }
116 }
117
118 double GetZOffset() const { // 获取Z轴偏移
119 return _zOffset;
120 }
121
122 const std::string &GetCountry() const { // 获取国家
123 return _country;
124 }
125
126 const std::string &GetType() const { // 获取类型
127 return _type;
128 }
129
130 const std::string &GetSubtype() const { // 获取子类型
131 return _subtype;
132 }
133
134 double GetValue() const { // 获取值
135 return _value;
136 }
137
138 const std::string &GetUnit() const { // 获取单位
139 return _unit;
140 }
141
142 double GetHeight() const { // 获取高度
143 return _height;
144 }
145
146 double GetWidth() const { // 获取宽度
147 return _width;
148 }
149
150 const std::string &GetText() const { // 获取文本
151 return _text;
152 }
153
154 double GetHOffset() const { // 获取水平偏移
155 return _hOffset;
156 }
157
158 double GetPitch() const { // 获取俯仰角
159 return _pitch;
160 }
161
162 double GetRoll() const { // 获取横滚角
163 return _roll;
164 }
165
166 const std::vector<SignalDependency> & // 获取依赖信号
168 return _dependencies;
169 }
170
171 const geom::Transform &GetTransform() const { // 获取几何变换
172 return _transform;
173 }
174
175 const std::set<ContId>& GetControllers() const { // 获取控制器集合
176 return _controllers;
177 }
178
179 private:
180 friend MapBuilder; // 声明MapBuilder为友元类
181
182 RoadId _road_id; // 道路ID
183 SignId _signal_id; // 信号ID
184 double _s; // S坐标
185 double _t; // T坐标
186 std::string _name; // 信号名称
187 std::string _dynamic; // 动态属性
188 std::string _orientation; // 方向
189 double _zOffset; // Z轴偏移
190 std::string _country; // 国家
191 std::string _type; // 类型
192 std::string _subtype; // 子类型
193 double _value; // 值
194 std::string _unit; // 单位
195 double _height; // 高度
196 double _width; // 宽度
197 std::string _text; // 文本
198 double _hOffset; // 水平偏移
199 double _pitch; // 俯仰角
200 double _roll; // 横滚角
201 std::vector<SignalDependency> _dependencies; // 依赖信号列表
203 std::set<ContId> _controllers; // 控制器集合
204 bool _using_inertial_position = false; // 是否使用惯性位置
205
206 };
207
208} // road
209} // carla
这个类用于禁止拷贝构造函数和赋值操作,但允许移动构造函数和赋值操作
const std::string & GetSubtype() const
Definition Signal.h:130
const geom::Transform & GetTransform() const
Definition Signal.h:171
std::string _dynamic
Definition Signal.h:187
const std::string & GetType() const
Definition Signal.h:126
const std::vector< SignalDependency > & GetDependencies()
Definition Signal.h:167
std::string _subtype
Definition Signal.h:192
double GetHeight() const
Definition Signal.h:142
double GetT() const
Definition Signal.h:92
RoadId GetRoadId() const
Definition Signal.h:80
double GetPitch() const
Definition Signal.h:158
geom::Transform _transform
Definition Signal.h:202
std::string _unit
Definition Signal.h:194
bool GetDynamic() const
Definition Signal.h:96
const std::string & GetUnit() const
Definition Signal.h:138
std::string _orientation
Definition Signal.h:188
const std::string & GetName() const
Definition Signal.h:104
std::vector< SignalDependency > _dependencies
Definition Signal.h:201
double GetRoll() const
Definition Signal.h:162
double GetHOffset() const
Definition Signal.h:154
SignalOrientation GetOrientation() const
Definition Signal.h:108
std::string _text
Definition Signal.h:197
double GetZOffset() const
Definition Signal.h:118
const std::string & GetText() const
Definition Signal.h:150
const std::set< ContId > & GetControllers() const
Definition Signal.h:175
double GetWidth() const
Definition Signal.h:146
std::string _name
Definition Signal.h:186
double GetValue() const
Definition Signal.h:134
std::string _country
Definition Signal.h:190
const SignId & GetSignalId() const
Definition Signal.h:84
double GetS() const
Definition Signal.h:88
std::set< ContId > _controllers
Definition Signal.h:203
bool _using_inertial_position
Definition Signal.h:204
Signal(RoadId road_id, SignId signal_id, double s, double t, std::string name, std::string dynamic, std::string orientation, double zOffset, std::string country, std::string type, std::string subtype, double value, std::string unit, double height, double width, std::string text, double hOffset, double pitch, double roll)
Definition Signal.h:40
const std::string & GetCountry() const
Definition Signal.h:122
std::string _type
Definition Signal.h:191
SignalOrientation
Definition Signal.h:21
uint32_t RoadId
Definition RoadTypes.h:20
std::string SignId
Definition RoadTypes.h:35
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
SignalDependency(std::string dependency_id, std::string type)
Definition Signal.h:30