概述
Curve1d类是apollo planning模块下modules\planning\math\curve1d\curve1d.h实现
从类名来看,应该是Curve1d是1维参数曲线类?
从代码来看Curve1d类主要是实现:
显然这就是一个1基类,1维参数曲线类,并无任何实现,仅声明接口,具体由派生类实现这些接口,相当于声明了派生类的接口规范,派生类必须实现这里声明的所有接口;
派生类必须实现:获取参数曲线的参数总长度的函数,参数曲线信息转字符串的函数,插值出指定参数处对应的指定阶导数的值的函数
curve1d.h
#pragma once
#include <string>
namespace apollo {
namespace planning {
// Base type for various types of 1-dimensional curves
//显然这就是一个1基类,1维参数曲线类,并无任何实现,仅声明接口,具体由派生类实现这些接口,相当于声明了派生类的接口规范,必须实现这里声明的所有接口
class Curve1d {
public:
//默认构造函数,析构函数
Curve1d() = default;
virtual ~Curve1d() = default;
//插值函数,而且可以插值出指定参数处对应的指定阶导数的值,
virtual double Evaluate(const std::uint32_t order,
const double param) const = 0;
//可以获取整个1维参数的参数总长
virtual double ParamLength() const = 0;
//将曲线相关的信息系数等转化成字符串,便于输出打印调试等
virtual std::string ToString() const = 0;
};
} // namespace planning
} // namespace apollo