CARLA
 
载入中...
搜索中...
未找到
RoadInfoElevation.h
浏览该文件的文档.
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#pragma once // 指示这个头文件被包含一次,防止重复包含
8
11
12namespace carla {
13namespace road {
14namespace element {
15
16 class RoadInfoElevation final : public RoadInfo { // RoadInfoElevation类继承自RoadInfo类
17 public:
18
19 RoadInfoElevation( // RoadInfoElevation的构造函数
20 double s, // 道路的s偏移量
21 double a, // 高程
22 double b, // 坡度
23 double c, // 垂直曲率
24 double d) // 曲率变化
25 : RoadInfo(s), // 调用基类构造函数
26 _elevation(a, b, c, d, s) {} // 初始化_elevation成员变量
27
28 void AcceptVisitor(RoadInfoVisitor &v) final { // 接受访问者模式的函数,用于访问RoadInfoElevation对象
29 v.Visit(*this); // 调用访问者对象的Visit函数
30 }
31
32 // @todo 未使用?你可以直接使用多项式。
33 double Evaluate(const double dist, double &out_tan) const { // Evaluate函数用于计算给定距离处的elevation值和其切线值
34 out_tan = _elevation.Tangent(dist); // 计算并设置切线值
35 return _elevation.Evaluate(dist); // 返回elevation值
36 }
37
38 const geom::CubicPolynomial &GetPolynomial() const { // GetPolynomial函数返回_elevation的CubicPolynomial对象
39 return _elevation;
40 }
41
42 private:
43
44 const geom::CubicPolynomial _elevation; // _elevation是CubicPolynomial类型的成员变量,用于表示道路的高程
45 };
46
47} // namespace element
48} // namespace road
49} // namespace carla
定义一个三次多项式CubicPolynomial类,用于描述和计算三次多项式 f(x) = a + b * x + c * x^2 + d * x^3
value_type Evaluate(const value_type &x) const
评估 f(x) = a + bx + cx^2 + dx^3
value_type Tangent(const value_type &x) const
使用 df/dx = b + 2cx + 3dx^2 计算正切值
void AcceptVisitor(RoadInfoVisitor &v) final
const geom::CubicPolynomial & GetPolynomial() const
const geom::CubicPolynomial _elevation
double Evaluate(const double dist, double &out_tan) const
RoadInfoElevation(double s, double a, double b, double c, double d)
CARLA模拟器的主命名空间。
Definition Carla.cpp:139