Apollo 10.0
自动驾驶开放平台
apollo::dreamview::Interpolation2D类 参考

#include <interpolation_2d.h>

apollo::dreamview::Interpolation2D 的协作图:

Public 类型

typedef std::vector< std::tuple< double, double, double > > DataType
 
typedef std::pair< double, double > KeyType
 

Public 成员函数

 Interpolation2D ()=default
 
bool init (const DataType &xyz)
 
double Interpolate (const KeyType &xy) const
 

详细描述

在文件 interpolation_2d.h27 行定义.

成员类型定义说明

◆ DataType

typedef std::vector<std::tuple<double, double, double> > apollo::dreamview::Interpolation2D::DataType

在文件 interpolation_2d.h29 行定义.

◆ KeyType

typedef std::pair<double, double> apollo::dreamview::Interpolation2D::KeyType

在文件 interpolation_2d.h30 行定义.

构造及析构函数说明

◆ Interpolation2D()

apollo::dreamview::Interpolation2D::Interpolation2D ( )
default

成员函数说明

◆ init()

bool apollo::dreamview::Interpolation2D::init ( const DataType xyz)

在文件 interpolation_2d.cc25 行定义.

25 {
26 if (xyz.empty()) {
27 return false;
28 }
29 for (const auto& t : xyz) {
30 _xyz[std::get<0>(t)][std::get<2>(t)] = std::get<1>(t);
31 }
32 return true;
33}

◆ Interpolate()

double apollo::dreamview::Interpolation2D::Interpolate ( const KeyType xy) const

在文件 interpolation_2d.cc35 行定义.

35 {
36 double max_x = _xyz.rbegin()->first;
37 double min_x = _xyz.begin()->first;
38 if (xy.first >= max_x - kDoubleEpsilon) {
39 return InterpolateYz(_xyz.rbegin()->second, xy.second);
40 }
41 if (xy.first <= min_x + kDoubleEpsilon) {
42 return InterpolateYz(_xyz.begin()->second, xy.second);
43 }
44
45 auto itr_after = _xyz.lower_bound(xy.first);
46 auto itr_before = itr_after;
47 --itr_before;
48
49 double x_before = itr_before->first;
50 double z_before = InterpolateYz(itr_before->second, xy.second);
51 double x_after = itr_after->first;
52 double z_after = InterpolateYz(itr_after->second, xy.second);
53
54 double x_diff_before = std::fabs(xy.first - x_before);
55 double x_diff_after = std::fabs(xy.first - x_after);
56
57 return InterpolateValue(z_before, x_diff_before, z_after, x_diff_after);
58}
const double kDoubleEpsilon

该类的文档由以下文件生成: