11 #ifndef _parameteric_curves_force_curve_hpp
12 #define _parameteric_curves_force_curve_hpp
14 #include <boost/archive/text_iarchive.hpp>
15 #include <boost/archive/text_oarchive.hpp>
16 #include <boost/serialization/split_member.hpp>
17 #include <boost/serialization/vector.hpp>
30 template <
typename Numeric =
double>
32 :
public AbstractCurve<Numeric, Eigen::Matrix<Numeric, 6, 1> > {
33 static const std::size_t
Dim = 3;
34 typedef Eigen::Matrix<Numeric, 2 * Dim, 1>
force_t;
35 typedef Eigen::Matrix<Numeric, 2 * Dim, 1>
motion_t;
74 return force_t::Zero(
Dim);
96 template <
class Archive>
97 void save(Archive& ar,
const unsigned int )
const {
104 template <
class Archive>
105 void load(Archive& ar,
const unsigned int ) {
110 this->
t_min = linPart.tmin();
111 this->
t_max = linPart.tmax();
113 assert(this->
t_min == angPart.tmin());
114 assert(this->
t_max == angPart.tmax());
118 BOOST_SERIALIZATION_SPLIT_MEMBER()
122 std::ifstream ifs(filename.c_str());
124 boost::archive::text_iarchive ia(ifs);
128 const std::string exception_message(filename +
129 " does not seem to be a valid file.");
130 throw std::invalid_argument(exception_message);
138 std::ofstream ofs(filename.c_str());
140 boost::archive::text_oarchive oa(ofs);
141 oa << *static_cast<const ForceCurve*>(
this);
143 const std::string exception_message(filename +
144 " does not seem to be a valid file.");
145 throw std::invalid_argument(exception_message);
void load(Archive &ar, Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &m, const unsigned int)
Definition: eigen-matrix.hpp:50
void save(Archive &ar, const Eigen::Matrix< _Scalar, _Rows, _Cols, _Options, _MaxRows, _MaxCols > &m, const unsigned int)
Definition: eigen-matrix.hpp:38
Definition: abstract-curve.hpp:16
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 time_t tmax() const
Definition: abstract-curve.hpp:48
time_t t_max
Definition: abstract-curve.hpp:65
time_t t_min
Definition: abstract-curve.hpp:64
Represents a set of cubic splines defining a continuous function crossing each of the waypoint given ...
Definition: spline.hpp:86
virtual const std::size_t & size() const
Definition: spline.hpp:264
Representation of a spatial vector curve in the form of splines Returns Plucker coordinates in the fo...
Definition: force-curve.hpp:32
bool saveToFile(const std::string &filename) const
Saved a Derived object as a text file.
Definition: force-curve.hpp:137
void setMotionVector(const motion_t &motionVector_)
Definition: force-curve.hpp:79
spline_lin_t linPart
Definition: force-curve.hpp:89
virtual const force_t operator()(const time_t &t) const
Definition: force-curve.hpp:66
virtual bool setInitialPoint(const num_t &)
Definition: force-curve.hpp:85
Spline< Numeric, Dim, Eigen::Matrix< Numeric, Dim, 1 > > spline_lin_t
Definition: force-curve.hpp:36
virtual const std::size_t & size() const
Definition: force-curve.hpp:77
spline_ang_t angPart
Definition: force-curve.hpp:90
Spline< Numeric, Dim, Eigen::Matrix< Numeric, Dim, 1 > > spline_ang_t
Definition: force-curve.hpp:37
ForceCurve(const ForceCurve &other)
Copy Constructor.
Definition: force-curve.hpp:56
AbstractCurve< num_t, force_t > curve_abc_t
Definition: force-curve.hpp:40
motion_t motionVector
Definition: force-curve.hpp:91
Eigen::Matrix< Numeric, 2 *Dim, 1 > motion_t
Definition: force-curve.hpp:35
~ForceCurve()
Destructor.
Definition: force-curve.hpp:63
bool loadFromFile(const std::string &filename)
Definition: force-curve.hpp:121
virtual bool setInitialPoint(const force_t &)
Definition: force-curve.hpp:84
Numeric time_t
Definition: force-curve.hpp:38
static const std::size_t Dim
Definition: force-curve.hpp:33
friend class boost::serialization::access
Definition: force-curve.hpp:95
Numeric num_t
Definition: force-curve.hpp:39
Eigen::Matrix< Numeric, 2 *Dim, 1 > force_t
Definition: force-curve.hpp:34
ForceCurve()
Constructor.
Definition: force-curve.hpp:45
virtual const force_t derivate(const time_t &, const std::size_t &) const
Definition: force-curve.hpp:72
ForceCurve(const spline_lin_t &linPart_, const spline_ang_t &angPart_)
Constructor.
Definition: force-curve.hpp:49