CARLA
 
载入中...
搜索中...
未找到
Light.cpp
浏览该文件的文档.
1
2// Copyright (c) 2020 Computer Vision Center (CVC) at the Universitat Autonoma
3// de Barcelona (UAB).
4//
5// This work is licensed under the terms of the MIT license.
6// For a copy, see <https://opensource.org/licenses/MIT>.
7
10
11#include <assert.h>
12
13namespace carla {
14namespace client {
15// 定义 LightGroup 类型别名,实际是 rpc::LightState::LightGroup
17// 获取灯光颜色
19 // 获取弱指针指向的 LightManager 对象
20 auto light_manager = _light_manager.lock();
21 // 断言确保 light_manager 存在
22 assert(light_manager && "No light_manager");
23 // 调用 LightManager 的 GetColor 方法获取灯光颜色
24 return light_manager->GetColor(_id);
25}
26// 获取灯光强度
27float Light::GetIntensity() const {
28 auto light_manager = _light_manager.lock();
29 assert(light_manager && "No light_manager");
30 return light_manager->GetIntensity(_id);
31}
32// 获取灯光组
34 auto light_manager = _light_manager.lock();
35 assert(light_manager && "No light_manager");
36 return light_manager->GetLightGroup(_id);
37}
38// 获取灯光状态
40 auto light_manager = _light_manager.lock();
41 assert(light_manager && "No light_manager");
42 return light_manager->GetLightState(_id);
43}
44// 判断灯光是否开启
45bool Light::IsOn() const {
46 auto light_manager = _light_manager.lock();
47 assert(light_manager && "No light_manager");
48 // 判断灯光是否激活(开启)
49 return light_manager->IsActive(_id) == true;
50}
51// 判断灯光是否关闭
52bool Light::IsOff() const {
53 auto light_manager = _light_manager.lock();
54 assert(light_manager && "No light_manager");
55 // 判断灯光是否未激活(关闭)
56 return light_manager->IsActive(_id) == false;
57}
58// 设置灯光颜色
60 auto light_manager = _light_manager.lock();
61 assert(light_manager && "No light_manager");
62 light_manager->SetColor(_id, color);
63}
64// 设置灯光强度
65void Light::SetIntensity(float intensity) {
66 auto light_manager = _light_manager.lock();
67 assert(light_manager && "No light_manager");
68 light_manager->SetIntensity(_id, intensity);
69}
70// 设置灯光组
72 auto light_manager = _light_manager.lock();
73 assert(light_manager && "No light_manager");
74 light_manager->SetLightGroup(_id, group);
75}
76// 设置灯光状态
77void Light::SetLightState(const LightState& state) {
78 auto light_manager = _light_manager.lock();
79 assert(light_manager && "No light_manager");
80 light_manager->SetLightState(_id, state);
81}
82// 打开灯光
84 auto light_manager = _light_manager.lock();
85 assert(light_manager && "No light_manager");
86 light_manager->SetActive(_id, true);
87}
88// 关闭灯光
90 auto light_manager = _light_manager.lock();
91 assert(light_manager && "No light_manager");
92 light_manager->SetActive(_id, false);
93}
94
95
96} // namespace client
97} // namespace carla
void SetLightState(const LightState &state)
Definition Light.cpp:77
LightGroup GetLightGroup() const
Definition Light.cpp:33
Color GetColor() const
Definition Light.cpp:18
LightState GetLightState() const
Definition Light.cpp:39
bool IsOn() const
Definition Light.cpp:45
float GetIntensity() const
Definition Light.cpp:27
bool IsOff() const
Definition Light.cpp:52
void SetColor(Color color)
Definition Light.cpp:59
void SetIntensity(float intensity)
Definition Light.cpp:65
WeakPtr< LightManager > _light_manager
Definition Light.h:78
void SetLightGroup(LightGroup group)
Definition Light.cpp:71
CARLA模拟器的主命名空间。
Definition Carla.cpp:139
包含CARLA客户端相关类和函数的命名空间。
表示车辆灯光状态的结构体。