cubic_hermite_spline.h 15.6 KB
 JasonChmn committed May 20, 2019 1 /**  Guilhem Saurel committed Sep 24, 2019 2 3 4 5 6  * \file cubic_hermite_spline.h * \brief class allowing to create a cubic hermite spline of any dimension. * \author Justin Carpentier modified by Jason Chemin * \date 05/2019 */  JasonChmn committed May 20, 2019 7   JasonChmn committed Apr 25, 2019 8 9 10 11 12 13 14 15 16 17 18 19 20 #ifndef _CLASS_CUBICHERMITESPLINE #define _CLASS_CUBICHERMITESPLINE #include "curve_abc.h" #include "curve_constraint.h" #include "MathDefs.h" #include #include #include  Guilhem Saurel committed Sep 24, 2019 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 #include // To serialize std::pair namespace curves { /// \class CubicHermiteSpline. /// \brief Represents a set of cubic hermite splines defining a continuous function \f$p(t)\f$. /// A hermite cubic spline is a minimal degree polynom interpolating a function in two /// points \f$P_i\f$ and \f$P_{i+1}\f$ with its tangent \f$m_i\f$ and \f$m_{i+1}\f$.
/// A hermite cubic spline : /// - crosses each of the waypoint given in its initialization (\f$P_0\f$, \f$P_1\f$,...,\f$P_N\f$). /// - has its derivatives on \f$P_i\f$ and \f$P_{i+1}\f$ are \f$p'(t_{P_i}) = m_i\f$ and \f$p'(t_{P_{i+1}}) = /// m_{i+1}\f$. /// template > struct cubic_hermite_spline : public curve_abc {  36  typedef Point point_t;  Guilhem Saurel committed Sep 24, 2019 37 38 39 40  typedef std::pair pair_point_tangent_t; typedef std::vector > t_pair_point_tangent_t; typedef std::vector