Spline.h
Go to the documentation of this file.
1 /*
2  * Copyright 2015-2019 CNRS-UM LIRMM, CNRS-AIST JRL
3  */
4 
5 #pragma once
6 #include <mc_trajectory/api.h>
7 
8 #include <vector>
9 
10 namespace mc_trajectory
11 {
12 
13 template<typename T, typename WaypointsT>
14 struct Spline
15 {
16 public:
17  Spline(double duration, const T & start, const T & target, const WaypointsT & waypoints = {});
18 
25  void waypoints(const WaypointsT & waypoints);
31  const WaypointsT & waypoints() const;
32 
37  void start(const T & start);
42  const T & start() const;
43 
48  void target(const T & target);
53  const T & target() const;
54 
61  void samplingPoints(unsigned s);
62 
67  unsigned samplingPoints() const;
68 
73  virtual void update() = 0;
74 
75 protected:
76  double duration_;
77  T start_;
79  WaypointsT waypoints_;
80  unsigned samplingPoints_ = 10;
81  std::vector<T> samples_;
82  bool needsUpdate_ = false;
83 };
84 
85 } // namespace mc_trajectory
86 
87 #include <mc_trajectory/Spline.hpp>
Definition: BSpline.h:15
Definition: Spline.h:15
T target_
Definition: Spline.h:78
WaypointsT waypoints_
Definition: Spline.h:79
unsigned samplingPoints_
Definition: Spline.h:80
const WaypointsT & waypoints() const
Returns waypoints.
T start_
Definition: Spline.h:77
const T & start() const
Starting point at time t=0.
bool needsUpdate_
Definition: Spline.h:82
void target(const T &target)
Sets the spline target.
void samplingPoints(unsigned s)
Number of sampling points for the trajectory visualization.
virtual void update()=0
Triggers recreation of the curve. Will only occur if the curve parameters were modified (waypoints,...
void start(const T &start)
Starting point for the trajectory at time t=0.
std::vector< T > samples_
Definition: Spline.h:81
void waypoints(const WaypointsT &waypoints)
Defines waypoints.
unsigned samplingPoints() const
Gets number of samples.
const T & target() const
Gets the spline target position.
double duration_
Definition: Spline.h:76
Spline(double duration, const T &start, const T &target, const WaypointsT &waypoints={})