piecewise_curve.h 16.5 KB
 JasonChmn committed Jul 02, 2019 1 /**  Guilhem Saurel committed Sep 24, 2019 2 3 4 5 6  * \file piecewise_curve.h * \brief class allowing to create a piecewise curve. * \author Jason C. * \date 05/2019 */  JasonChmn committed Jul 02, 2019 7 8 9 10 11 12  #ifndef _CLASS_PIECEWISE_CURVE #define _CLASS_PIECEWISE_CURVE #include "curve_abc.h" #include "curve_conversion.h"  Pierre Fernbach committed Nov 30, 2019 13 #include  Pierre Fernbach committed Nov 30, 2019 14 #include  JasonChmn committed Jul 02, 2019 15   Guilhem Saurel committed Sep 24, 2019 16 17 18 19 20 21 22 23 24 25 26 27 namespace curves { /// \class PiecewiseCurve. /// \brief Represent a piecewise curve. We can add some new curve, /// but the starting time of the curve to add should be equal to the ending time of the actual /// piecewise_curve.
\ Example : A piecewise curve composed of three curves cf0, /// cf1 and cf2 where cf0 is defined between \f$[T0_{min},T0_{max}]\f$, cf1 between /// \f$[T0_{max},T1_{max}]\f$ and cf2 between \f$[T1_{max},T2_{max}]\f$. /// On the piecewise polynomial curve, cf0 is located between \f$[T0_{min},T0_{max}[\f$, /// cf1 between \f$[T0_{max},T1_{max}[\f$ and cf2 between \f$[T1_{max},T2_{max}]\f$. /// template ,  Pierre Fernbach committed Nov 27, 2019 28 29  typename Point_derivate = Point > struct piecewise_curve : public curve_abc {  Guilhem Saurel committed Sep 24, 2019 30  typedef Point point_t;  Pierre Fernbach committed Nov 30, 2019 31 32 33  typedef Point_derivate point_derivate_t; typedef std::vector > t_point_t; typedef std::vector > t_point_derivate_t;  Guilhem Saurel committed Sep 24, 2019 34 35  typedef Time time_t; typedef Numeric num_t;  Pierre Fernbach committed Nov 30, 2019 36 37  typedef curve_abc curve_t; // parent class typedef boost::shared_ptr curve_ptr_t;  Pierre Fernbach committed Nov 30, 2019 38  typedef typename std::vector t_curve_ptr_t;  Guilhem Saurel committed Sep 24, 2019 39  typedef typename std::vector