GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: include/pinocchio/serialization/inertia.hpp Lines: 14 14 100.0 %
Date: 2024-01-23 21:41:47 Branches: 11 27 40.7 %

Line Branch Exec Source
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
15
namespace boost
16
{
17
  namespace serialization
18
  {
19
20
    template <class Archive, typename Scalar, int Options>
21
2878
    void save(Archive & ar,
22
              const pinocchio::InertiaTpl<Scalar,Options> & I,
23
              const unsigned int /*version*/)
24
    {
25
2878
      const Scalar mass = I.mass();
26

2878
      ar & make_nvp("mass",mass);
27


2878
      ar & make_nvp("lever",make_array(I.lever().data(),3));
28

2878
      ar & make_nvp("inertia",I.inertia());
29
2878
    }
30
31
    template <class Archive, typename Scalar, int Options>
32
2380
    void load(Archive & ar,
33
              pinocchio::InertiaTpl<Scalar,Options> & I,
34
              const unsigned int /*version*/)
35
    {
36
2380
      ar >> make_nvp("mass",I.mass());
37

2380
      ar >> make_nvp("lever",make_array(I.lever().data(),3));
38
2380
      ar >> make_nvp("inertia",I.inertia());
39
2380
    }
40
41
    template <class Archive, typename Scalar, int Options>
42
5258
    void serialize(Archive & ar,
43
                   pinocchio::InertiaTpl<Scalar,Options> & I,
44
                   const unsigned int version)
45
    {
46
5258
      split_free(ar,I,version);
47
5258
    }
48
49
  }
50
}
51
52
#endif // ifndef __pinocchio_serialization_inertia_hpp__