abstract-curve.hpp
Go to the documentation of this file.
1 
10 #include <cstddef>
11 #include <iostream>
12 
13 #ifndef _parameteric_curves_abstract_curve_hpp
14 #define _parameteric_curves_abstract_curve_hpp
15 
16 namespace parametriccurves {
20 template <typename Numeric, typename Point>
21 struct AbstractCurve {
22  typedef Point point_t;
23  typedef Numeric time_t;
24  typedef Numeric num_t;
25 
26  public:
27  /* Constructors - destructors */
28  AbstractCurve(time_t t_min_, time_t t_max_) : t_min(t_min_), t_max(t_max_) {}
30  virtual ~AbstractCurve() {}
31 
32  public:
36  virtual const point_t operator()(const time_t& t) const = 0;
37 
42  virtual const point_t derivate(const time_t& t,
43  const std::size_t& order) const = 0;
44 
45  public:
46  /*Getters*/
47  virtual const time_t tmin() const { return t_min; }
48  virtual const time_t tmax() const { return t_max; }
49  virtual bool checkRange(const time_t t) const {
50  return (t >= t_min) && (t <= t_max);
51  }
52 
53  /* Setters */
54  virtual bool setInitialPoint(const point_t& /*x_init*/) = 0;
55  virtual bool setInitialPoint(const num_t& /*x_init*/) = 0;
56 
57  virtual bool setTimePeriod(const time_t& traj_time_) {
58  t_min = 0.0;
59  t_max = traj_time_;
60  return true;
61  }
62 
63  protected:
66 };
67 } // namespace parametriccurves
68 #endif //_STRUCT_CURVE_ABC
Definition: abstract-curve.hpp:16
Eigen::Matrix< Numeric, 3, 1 > Point
Definition: effector_spline.h:28
double Numeric
Definition: effector_spline.h:26
Represents a curve of dimension Dim is Safe is false, no verification is made on the evaluation of th...
Definition: abstract-curve.hpp:21
virtual const time_t tmin() const
Definition: abstract-curve.hpp:47
virtual const point_t derivate(const time_t &t, const std::size_t &order) const =0
Evaluation of the derivative spline at time t.
virtual const time_t tmax() const
Definition: abstract-curve.hpp:48
virtual bool checkRange(const time_t t) const
Definition: abstract-curve.hpp:49
Numeric num_t
Definition: abstract-curve.hpp:24
time_t t_max
Definition: abstract-curve.hpp:65
Numeric time_t
Definition: abstract-curve.hpp:23
virtual bool setInitialPoint(const point_t &)=0
Point point_t
Definition: abstract-curve.hpp:22
time_t t_min
Definition: abstract-curve.hpp:64
virtual ~AbstractCurve()
Definition: abstract-curve.hpp:30
AbstractCurve(time_t t_min_, time_t t_max_)
Definition: abstract-curve.hpp:28
virtual bool setInitialPoint(const num_t &)=0
virtual const point_t operator()(const time_t &t) const =0
Evaluation of the cubic spline at time t.
AbstractCurve()
Definition: abstract-curve.hpp:29
virtual bool setTimePeriod(const time_t &traj_time_)
Definition: abstract-curve.hpp:57