KrisLibrary  1.0.0
Interpolator.h
1 #ifndef PLANNING_INTERPOLATOR_H
2 #define PLANNING_INTERPOLATOR_H
3 
4 #include <KrisLibrary/planning/CSpace.h>
5 #include <memory>
6 
11 {
12 public:
13  virtual ~Interpolator() {}
14  virtual void Eval(Real u,Config& x) const=0;
15  virtual Real Length() const=0;
16  virtual const Config& Start() const=0;
17  virtual const Config& End() const=0;
18  virtual Real ParamStart() const { return 0; }
19  virtual Real ParamEnd() const { return 1; }
20 };
21 
26 {
27 public:
28  ReverseInterpolator(const std::shared_ptr<Interpolator>& base);
29  virtual ~ReverseInterpolator() {}
30  virtual void Eval(Real u,Config& x) const { base->Eval(1.0-u,x); }
31  virtual Real Length() const { return base->Length(); }
32  virtual const Config& Start() const { return base->End(); }
33  virtual const Config& End() const { return base->Start(); }
34 
35  std::shared_ptr<Interpolator> base;
36 };
37 
38 typedef std::shared_ptr<Interpolator> InterpolatorPtr;
39 
40 #endif
An interpolator that reverses another one.
Definition: Interpolator.h:25
Vector Config
an alias for Vector
Definition: RobotKinematics3D.h:14
A base class for all 1D interpolators.
Definition: Interpolator.h:10