pinocchio  3.7.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
 
Loading...
Searching...
No Matches
inertia.hpp
1//
2// Copyright (c) 2019 INRIA
3//
4
5#ifndef __pinocchio_serialization_inertia_hpp__
6#define __pinocchio_serialization_inertia_hpp__
7
8#include "pinocchio/spatial/inertia.hpp"
9#include "pinocchio/serialization/fwd.hpp"
10#include "pinocchio/serialization/symmetric3.hpp"
11
12#include <boost/serialization/split_free.hpp>
13#include <boost/serialization/vector.hpp>
14
15namespace boost
16{
17 namespace serialization
18 {
19
20 template<class Archive, typename Scalar, int Options>
21 void save(
22 Archive & ar,
24 const unsigned int /*version*/)
25 {
26 const Scalar mass = I.mass();
27 ar & make_nvp("mass", mass);
28 ar & make_nvp("lever", make_array(I.lever().data(), 3));
29 ar & make_nvp("inertia", I.inertia());
30 }
31
32 template<class Archive, typename Scalar, int Options>
33 void
34 load(Archive & ar, pinocchio::InertiaTpl<Scalar, Options> & I, const unsigned int /*version*/)
35 {
36 ar >> make_nvp("mass", I.mass());
37 ar >> make_nvp("lever", make_array(I.lever().data(), 3));
38 ar >> make_nvp("inertia", I.inertia());
39 }
40
41 template<class Archive, typename Scalar, int Options>
42 void
43 serialize(Archive & ar, pinocchio::InertiaTpl<Scalar, Options> & I, const unsigned int version)
44 {
45 split_free(ar, I, version);
46 }
47
48 } // namespace serialization
49} // namespace boost
50
51#endif // ifndef __pinocchio_serialization_inertia_hpp__