CARLA
载入中...
搜索中...
未找到
LibCarla
source
carla
road
element
LaneMarking.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/road/element/LaneMarking.h
"
// 引入 LaneMarking 头文件
8
9
#include "
carla/Exception.h
"
// 引入异常处理头文件
10
#include "
carla/StringUtil.h
"
// 引入字符串工具头文件
11
#include "
carla/road/element/RoadInfoMarkRecord.h
"
// 引入道路信息标记记录头文件
12
13
namespace
carla
{
14
namespace
road {
15
namespace
element {
16
17
// 静态函数:根据字符串获取 LaneMarking 类型
18
static
LaneMarking::Type
GetType
(std::string str) {
19
StringUtil::ToLower
(str);
// 将字符串转换为小写
20
if
(str ==
"broken"
) {
// 检查是否为 "broken"
21
return
LaneMarking::Type::Broken
;
// 返回 LaneMarking::Type::Broken
22
}
else
if
(str ==
"solid"
) {
// 检查是否为 "solid"
23
return
LaneMarking::Type::Solid
;
// 返回 LaneMarking::Type::Solid
24
}
else
if
(str ==
"solid solid"
) {
// 检查是否为 "solid solid"
25
return
LaneMarking::Type::SolidSolid
;
// 返回 LaneMarking::Type::SolidSolid
26
}
else
if
(str ==
"solid broken"
) {
// 检查是否为 "solid broken"
27
return
LaneMarking::Type::SolidBroken
;
// 返回 LaneMarking::Type::SolidBroken
28
}
else
if
(str ==
"broken solid"
) {
// 检查是否为 "broken solid"
29
return
LaneMarking::Type::BrokenSolid
;
// 返回 LaneMarking::Type::BrokenSolid
30
}
else
if
(str ==
"broken broken"
) {
// 检查是否为 "broken broken"
31
return
LaneMarking::Type::BrokenBroken
;
// 返回 LaneMarking::Type::BrokenBroken
32
}
else
if
(str ==
"botts dots"
) {
// 检查是否为 "botts dots"
33
return
LaneMarking::Type::BottsDots
;
// 返回 LaneMarking::Type::BottsDots
34
}
else
if
(str ==
"grass"
) {
// 检查是否为 "grass"
35
return
LaneMarking::Type::Grass
;
// 返回 LaneMarking::Type::Grass
36
}
else
if
(str ==
"curb"
) {
// 检查是否为 "curb"
37
return
LaneMarking::Type::Curb
;
// 返回 LaneMarking::Type::Curb
38
}
else
if
(str ==
"none"
) {
// 检查是否为 "none"
39
return
LaneMarking::Type::None
;
// 返回 LaneMarking::Type::None
40
}
else
{
41
return
LaneMarking::Type::Other
;
// 返回 LaneMarking::Type::Other
42
}
43
}
44
45
// 静态函数:根据字符串获取 LaneMarking 颜色
46
static
LaneMarking::Color
GetColor
(std::string str) {
47
StringUtil::ToLower
(str);
// 将字符串转换为小写
48
if
(str ==
"standard"
) {
// 检查是否为 "standard"
49
return
LaneMarking::Color::Standard
;
// 返回 LaneMarking::Color::Standard
50
}
else
if
(str ==
"blue"
) {
// 检查是否为 "blue"
51
return
LaneMarking::Color::Blue
;
// 返回 LaneMarking::Color::Blue
52
}
else
if
(str ==
"green"
) {
// 检查是否为 "green"
53
return
LaneMarking::Color::Green
;
// 返回 LaneMarking::Color::Green
54
}
else
if
(str ==
"red"
) {
// 检查是否为 "red"
55
return
LaneMarking::Color::Red
;
// 返回 LaneMarking::Color::Red
56
}
else
if
(str ==
"white"
) {
// 检查是否为 "white"
57
return
LaneMarking::Color::White
;
// 返回 LaneMarking::Color::White
58
}
else
if
(str ==
"yellow"
) {
// 检查是否为 "yellow"
59
return
LaneMarking::Color::Yellow
;
// 返回 LaneMarking::Color::Yellow
60
}
else
{
61
return
LaneMarking::Color::Other
;
// 返回 LaneMarking::Color::Other
62
}
63
}
64
65
// 静态函数:根据 RoadInfoMarkRecord 的 LaneChange 获取 LaneMarking 的 LaneChange
66
static
LaneMarking::LaneChange
GetLaneChange
(
RoadInfoMarkRecord::LaneChange
lane_change) {
67
switch
(lane_change) {
// 根据 lane_change 进行判断
68
case
RoadInfoMarkRecord::LaneChange::Increase
:
// 如果是 Increase
69
return
LaneMarking::LaneChange::Right
;
// 返回 LaneMarking::LaneChange::Right
70
case
RoadInfoMarkRecord::LaneChange::Decrease
:
// 如果是 Decrease
71
return
LaneMarking::LaneChange::Left
;
// 返回 LaneMarking::LaneChange::Left
72
case
RoadInfoMarkRecord::LaneChange::Both
:
// 如果是 Both
73
return
LaneMarking::LaneChange::Both
;
// 返回 LaneMarking::LaneChange::Both
74
default
:
// 默认情况
75
return
LaneMarking::LaneChange::None
;
// 返回 LaneMarking::LaneChange::None
76
}
77
}
78
79
// LaneMarking 构造函数,接收一个 RoadInfoMarkRecord 对象
80
LaneMarking::LaneMarking
(
const
RoadInfoMarkRecord
&info)
81
: type(
GetType
(info.
GetType
())),
// 初始化 type
82
color(
GetColor
(info.
GetColor
())),
// 初始化 color
83
lane_change(
GetLaneChange
(info.
GetLaneChange
())),
// 初始化 lane_change
84
width(info.GetWidth()) {}
// 初始化 width
85
86
}
// namespace element
87
}
// namespace road
88
}
// namespace carla
Exception.h
LaneMarking.h
RoadInfoMarkRecord.h
StringUtil.h
carla::StringUtil::ToLower
static void ToLower(WritableRangeT &str)
Definition
StringUtil.h:40
carla::road::element::RoadInfoMarkRecord
每条车道在道路横截面内可以提供多个道路标记条目。 道路标记信息定义了车道外边界的线条样式。 对于左侧车道,这是左边界;对于右侧车道,这是右边界。 左右车道之间的分隔线样式由零号车道(即中央车道)的道路标...
Definition
RoadInfoMarkRecord.h:23
carla::road::element::RoadInfoMarkRecord::LaneChange
LaneChange
可用作标志
Definition
RoadInfoMarkRecord.h:27
carla::road::element::RoadInfoMarkRecord::LaneChange::Both
@ Both
carla::road::element::RoadInfoMarkRecord::LaneChange::Decrease
@ Decrease
carla::road::element::RoadInfoMarkRecord::LaneChange::Increase
@ Increase
carla::road::element::GetType
static LaneMarking::Type GetType(std::string str)
Definition
LaneMarking.cpp:18
carla::road::element::GetLaneChange
static LaneMarking::LaneChange GetLaneChange(RoadInfoMarkRecord::LaneChange lane_change)
Definition
LaneMarking.cpp:66
carla::road::element::GetColor
static LaneMarking::Color GetColor(std::string str)
Definition
LaneMarking.cpp:46
carla
CARLA模拟器的主命名空间。
Definition
Carla.cpp:139
carla::road::element::LaneMarking::LaneChange
LaneChange
可以用作标志。
Definition
LaneMarking.h:50
carla::road::element::LaneMarking::LaneChange::Both
@ Both
carla::road::element::LaneMarking::LaneChange::None
@ None
carla::road::element::LaneMarking::LaneChange::Right
@ Right
carla::road::element::LaneMarking::LaneChange::Left
@ Left
carla::road::element::LaneMarking::LaneMarking
LaneMarking(const RoadInfoMarkRecord &info)
Definition
LaneMarking.cpp:80
carla::road::element::LaneMarking::Type
Type
Definition
LaneMarking.h:20
carla::road::element::LaneMarking::Type::BrokenBroken
@ BrokenBroken
carla::road::element::LaneMarking::Type::Curb
@ Curb
carla::road::element::LaneMarking::Type::BottsDots
@ BottsDots
carla::road::element::LaneMarking::Type::Other
@ Other
carla::road::element::LaneMarking::Type::None
@ None
carla::road::element::LaneMarking::Type::BrokenSolid
@ BrokenSolid
carla::road::element::LaneMarking::Type::Grass
@ Grass
carla::road::element::LaneMarking::Type::Broken
@ Broken
carla::road::element::LaneMarking::Type::SolidSolid
@ SolidSolid
carla::road::element::LaneMarking::Type::Solid
@ Solid
carla::road::element::LaneMarking::Type::SolidBroken
@ SolidBroken
carla::road::element::LaneMarking::Color
Color
Definition
LaneMarking.h:39
carla::road::element::LaneMarking::Color::White
@ White
carla::road::element::LaneMarking::Color::Yellow
@ Yellow
carla::road::element::LaneMarking::Color::Other
@ Other
carla::road::element::LaneMarking::Color::Blue
@ Blue
carla::road::element::LaneMarking::Color::Green
@ Green
carla::road::element::LaneMarking::Color::Standard
@ Standard
carla::road::element::LaneMarking::Color::Red
@ Red
制作者
1.10.0