spatial.hpp
Go to the documentation of this file.
1 // Copyright (c) 2015-2018, CNRS
2 // Authors: Justin Carpentier <jcarpent@laas.fr>
3 
4 #ifndef __multicontact_api_serialization_spatial_hpp__
5 #define __multicontact_api_serialization_spatial_hpp__
6 
7 #include <boost/serialization/split_free.hpp>
8 #include <boost/serialization/vector.hpp>
9 #include <pinocchio/spatial/force.hpp>
10 #include <pinocchio/spatial/se3.hpp>
11 
12 namespace boost {
13 
14 namespace serialization {
15 
16 template <class Archive, typename _Scalar, int _Options>
17 void save(Archive& ar, const pinocchio::SE3Tpl<_Scalar, _Options>& M,
18  const unsigned int /*version*/) {
19  ar& make_nvp("translation", make_array(M.translation().data(), 3));
20  ar& make_nvp("rotation", make_array(M.rotation().data(), 9));
21 }
22 
23 template <class Archive, typename _Scalar, int _Options>
24 void load(Archive& ar, pinocchio::SE3Tpl<_Scalar, _Options>& M,
25  const unsigned int /*version*/) {
26  ar >> make_nvp("translation", make_array(M.translation().data(), 3));
27  ar >> make_nvp("rotation", make_array(M.rotation().data(), 9));
28 }
29 
30 template <class Archive, typename _Scalar, int _Options>
31 void serialize(Archive& ar, pinocchio::SE3Tpl<_Scalar, _Options>& M,
32  const unsigned int version) {
33  split_free(ar, M, version);
34 }
35 
36 template <class Archive, typename _Scalar, int _Options>
37 void save(Archive& ar, const pinocchio::ForceTpl<_Scalar, _Options>& f,
38  const unsigned int /*version*/) {
39  ar& make_nvp("linear", make_array(f.linear().data(), 3));
40  ar& make_nvp("angular", make_array(f.angular().data(), 3));
41 }
42 
43 template <class Archive, typename _Scalar, int _Options>
44 void load(Archive& ar, pinocchio::ForceTpl<_Scalar, _Options>& f,
45  const unsigned int /*version*/) {
46  ar >> make_nvp("linear", make_array(f.linear().data(), 3));
47  ar >> make_nvp("angular", make_array(f.angular().data(), 3));
48 }
49 
50 template <class Archive, typename _Scalar, int _Options>
51 void serialize(Archive& ar, pinocchio::ForceTpl<_Scalar, _Options>& f,
52  const unsigned int version) {
53  split_free(ar, f, version);
54 }
55 
56 } // namespace serialization
57 
58 } // namespace boost
59 
60 #endif // ifndef __multicontact_api_serialization_spatial_hpp__
void load(Archive &ar, pinocchio::container::aligned_vector< T > &v, const unsigned int version)
Definition: aligned-vector.hpp:24
void serialize(Archive &ar, pinocchio::container::aligned_vector< T > &v, const unsigned int version)
Definition: aligned-vector.hpp:32
void save(Archive &ar, const pinocchio::container::aligned_vector< T > &v, const unsigned int version)
Definition: aligned-vector.hpp:16
Definition: aligned-vector.hpp:11