trajectory_collection
Interpolator.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <TrajColl/Func.h>
4 
5 namespace TrajColl
6 {
13 template<class T, class U = T>
15 {
16 public:
21  Interpolator(const std::map<double, T> & points = {}) : points_(points) {}
22 
24  Interpolator(const Interpolator & inst)
25  {
26  points_ = inst.points_;
27  }
28 
30  virtual std::shared_ptr<Interpolator<T, U>> clone() const = 0;
31 
33  virtual void clearPoints()
34  {
35  points_.clear();
36  }
37 
43  virtual void appendPoint(const std::pair<double, T> & point) = 0;
44 
46  virtual void calcCoeff() = 0;
47 
51  virtual T operator()(double t) const = 0;
52 
59  virtual U derivative(double t, int order = 1) const = 0;
60 
62  double startTime() const
63  {
64  return points_.begin()->first;
65  }
66 
68  double endTime() const
69  {
70  return points_.rbegin()->first;
71  }
72 
74  const std::map<double, T> & points() const
75  {
76  return points_;
77  }
78 
79 protected:
81  std::map<double, T> points_;
82 };
83 } // namespace TrajColl
TrajColl::Interpolator::appendPoint
virtual void appendPoint(const std::pair< double, T > &point)=0
Add point.
TrajColl::Interpolator::startTime
double startTime() const
Get start time.
Definition: Interpolator.h:62
TrajColl::Interpolator::calcCoeff
virtual void calcCoeff()=0
Calculate coefficients.
TrajColl::Interpolator::Interpolator
Interpolator(const std::map< double, T > &points={})
Constructor.
Definition: Interpolator.h:21
TrajColl::Interpolator::Interpolator
Interpolator(const Interpolator &inst)
Copy constructor.
Definition: Interpolator.h:24
TrajColl::Interpolator::endTime
double endTime() const
Get end time.
Definition: Interpolator.h:68
Func.h
TrajColl::Interpolator::clearPoints
virtual void clearPoints()
Clear points.
Definition: Interpolator.h:33
TrajColl::Interpolator::points_
std::map< double, T > points_
Times and values to be interpolated.
Definition: Interpolator.h:81
TrajColl
Definition: BangBangInterpolator.h:7
TrajColl::Interpolator::clone
virtual std::shared_ptr< Interpolator< T, U > > clone() const =0
Clone this instance and get shared pointer.
TrajColl::Interpolator::operator()
virtual T operator()(double t) const =0
Calculate interpolated value.
TrajColl::Interpolator
Interpolator of a sequence of waypoints.
Definition: Interpolator.h:14
TrajColl::Interpolator::derivative
virtual U derivative(double t, int order=1) const =0
Calculate the derivative of interpolated value.
TrajColl::Interpolator::points
const std::map< double, T > & points() const
Get points.
Definition: Interpolator.h:74