10 #ifndef HPP_FCL_SERIALIZATION_EIGEN_H 11 #define HPP_FCL_SERIALIZATION_EIGEN_H 13 #include <Eigen/Dense> 15 #include <boost/serialization/split_free.hpp> 16 #include <boost/serialization/vector.hpp> 17 #include <boost/serialization/array.hpp> 22 namespace serialization
25 #ifndef HPP_FCL_SKIP_EIGEN_BOOST_SERIALIZATION 27 template <
class Archive,
typename Scalar,
int Rows,
int Cols,
int Options,
int MaxRows,
int MaxCols>
28 void save(Archive & ar,
const Eigen::Matrix<Scalar,Rows,Cols,Options,MaxRows,MaxCols> & m,
const unsigned int )
30 Eigen::DenseIndex rows(m.rows()), cols(m.cols());
31 if (Rows == Eigen::Dynamic)
32 ar & BOOST_SERIALIZATION_NVP(rows);
33 if (Cols == Eigen::Dynamic)
34 ar & BOOST_SERIALIZATION_NVP(cols);
35 ar & make_nvp(
"data",make_array(m.data(), (size_t)m.size()));
38 template <
class Archive,
typename Scalar,
int Rows,
int Cols,
int Options,
int MaxRows,
int MaxCols>
39 void load(Archive & ar, Eigen::Matrix<Scalar,Rows,Cols,Options,MaxRows,MaxCols> & m,
const unsigned int )
41 Eigen::DenseIndex rows = Rows, cols = Cols;
42 if (Rows == Eigen::Dynamic)
43 ar >> BOOST_SERIALIZATION_NVP(rows);
44 if (Cols == Eigen::Dynamic)
45 ar >> BOOST_SERIALIZATION_NVP(cols);
47 ar >> make_nvp(
"data",make_array(m.data(), (size_t)m.size()));
50 template <
class Archive,
typename Scalar,
int Rows,
int Cols,
int Options,
int MaxRows,
int MaxCols>
51 void serialize(Archive & ar, Eigen::Matrix<Scalar,Rows,Cols,Options,MaxRows,MaxCols> & m,
const unsigned int version)
53 split_free(ar,m,version);
56 template <
class Archive,
typename PlainObjectBase,
int MapOptions,
typename Str
ideType>
57 void save(Archive & ar,
const Eigen::Map<PlainObjectBase,MapOptions,StrideType> & m,
const unsigned int )
59 Eigen::DenseIndex rows(m.rows()), cols(m.cols());
60 if (PlainObjectBase::RowsAtCompileTime == Eigen::Dynamic)
61 ar & BOOST_SERIALIZATION_NVP(rows);
62 if (PlainObjectBase::ColsAtCompileTime == Eigen::Dynamic)
63 ar & BOOST_SERIALIZATION_NVP(cols);
64 ar & make_nvp(
"data",make_array(m.data(), (size_t)m.size()));
67 template <
class Archive,
typename PlainObjectBase,
int MapOptions,
typename Str
ideType>
68 void load(Archive & ar, Eigen::Map<PlainObjectBase,MapOptions,StrideType> & m,
const unsigned int )
70 Eigen::DenseIndex rows = PlainObjectBase::RowsAtCompileTime, cols = PlainObjectBase::ColsAtCompileTime;
71 if (PlainObjectBase::RowsAtCompileTime == Eigen::Dynamic)
72 ar >> BOOST_SERIALIZATION_NVP(rows);
73 if (PlainObjectBase::ColsAtCompileTime == Eigen::Dynamic)
74 ar >> BOOST_SERIALIZATION_NVP(cols);
76 ar >> make_nvp(
"data",make_array(m.data(), (size_t)m.size()));
79 template <
class Archive,
typename PlainObjectBase,
int MapOptions,
typename Str
ideType>
80 void serialize(Archive & ar, Eigen::Map<PlainObjectBase,MapOptions,StrideType> & m,
const unsigned int version)
82 split_free(ar,m,version);
85 #endif // ifned HPP_FCL_SKIP_EIGEN_BOOST_SERIALIZATION 89 #endif // ifndef HPP_FCL_SERIALIZATION_EIGEN_H
void serialize(Archive &ar, hpp::fcl::AABB &aabb, const unsigned int)
Definition: AABB.h:17
void save(Archive &ar, const hpp::fcl::BVSplitter< BV > &splitter_, const unsigned int)
Definition: BV_splitter.h:34
void load(Archive &ar, hpp::fcl::BVSplitter< BV > &splitter_, const unsigned int)
Definition: BV_splitter.h:50