GCC Code Coverage Report
Directory: ./ Exec Total Coverage
File: include/pinocchio/serialization/joints-data.hpp Lines: 69 69 100.0 %
Date: 2024-01-23 21:41:47 Branches: 23 46 50.0 %

Line Branch Exec Source
1
//
2
// Copyright (c) 2019 INRIA
3
//
4
5
#ifndef __pinocchio_serialization_joints_data_hpp__
6
#define __pinocchio_serialization_joints_data_hpp__
7
8
namespace pinocchio
9
{
10
  template<typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
11
  struct Serialize< JointDataCompositeTpl<Scalar,Options,JointCollectionTpl> >
12
  {
13
    template<typename Archive>
14
28
    static void run(Archive & ar,
15
                    JointDataCompositeTpl<Scalar,Options,JointCollectionTpl> & joint_data)
16
    {
17
      using boost::serialization::make_nvp;
18
19
28
      ar & make_nvp("joints",joint_data.joints);
20
28
      ar & make_nvp("iMlast",joint_data.iMlast);
21
28
      ar & make_nvp("pjMi",joint_data.pjMi);
22
23
28
      ar & make_nvp("S",joint_data.S);
24
28
      ar & make_nvp("M",joint_data.M);
25
28
      ar & make_nvp("v",joint_data.v);
26
28
      ar & make_nvp("c",joint_data.c);
27
28
28
      ar & make_nvp("U",joint_data.U);
29
28
      ar & make_nvp("Dinv",joint_data.Dinv);
30
28
      ar & make_nvp("UDinv",joint_data.UDinv);
31
28
      ar & make_nvp("StU",joint_data.StU);
32
28
    }
33
  };
34
}
35
36
namespace boost
37
{
38
  namespace serialization
39
  {
40
41
    // For some older version of gcc, we have to rely on an additional namespace
42
    // to avoid ambiguous call to boost::serialization::serialize
43
    namespace fix
44
    {
45
      template <class Archive, typename Derived>
46
1512
      void serialize(Archive & ar,
47
                     pinocchio::JointDataBase<Derived> & joint_data,
48
                     const unsigned int /*version*/)
49
      {
50
1512
        ar & make_nvp("S",joint_data.S());
51
1512
        ar & make_nvp("M",joint_data.M());
52
1512
        ar & make_nvp("v",joint_data.v());
53
1512
        ar & make_nvp("c",joint_data.c());
54
55
1512
        ar & make_nvp("U",joint_data.U());
56
1512
        ar & make_nvp("Dinv",joint_data.Dinv());
57
1512
        ar & make_nvp("UDinv",joint_data.UDinv());
58
1512
      }
59
    }
60
61
    template <class Archive, typename Scalar, int Options, int axis>
62
980
    void serialize(Archive & ar,
63
                   pinocchio::JointDataRevoluteTpl<Scalar,Options,axis> & joint,
64
                   const unsigned int version)
65
    {
66
      typedef pinocchio::JointDataRevoluteTpl<Scalar,Options,axis> JointType;
67
980
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
68
980
    }
69
70
    template <class Archive, typename Scalar, int Options, int axis>
71
84
    void serialize(Archive & ar,
72
                   pinocchio::JointDataRevoluteUnboundedTpl<Scalar,Options,axis> & joint,
73
                   const unsigned int version)
74
    {
75
      typedef pinocchio::JointDataRevoluteUnboundedTpl<Scalar,Options,axis> JointType;
76
84
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
77
84
    }
78
79
    template <class Archive, typename Scalar, int Options, int axis>
80
84
    void serialize(Archive & ar,
81
                   pinocchio::JointDataPrismaticTpl<Scalar,Options,axis> & joint,
82
                   const unsigned int version)
83
    {
84
      typedef pinocchio::JointDataPrismaticTpl<Scalar,Options,axis> JointType;
85
84
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
86
84
    }
87
88
    template <class Archive, typename Scalar, int Options>
89
56
    void serialize(Archive & ar,
90
                   pinocchio::JointDataFreeFlyerTpl<Scalar,Options> & joint,
91
                   const unsigned int version)
92
    {
93
      typedef pinocchio::JointDataFreeFlyerTpl<Scalar,Options> JointType;
94
56
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
95
56
    }
96
97
    template <class Archive, typename Scalar, int Options>
98
28
    void serialize(Archive & ar,
99
                   pinocchio::JointDataPlanarTpl<Scalar,Options> & joint,
100
                   const unsigned int version)
101
    {
102
      typedef pinocchio::JointDataPlanarTpl<Scalar,Options> JointType;
103
28
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
104
28
    }
105
106
    template <class Archive, typename Scalar, int Options>
107
28
    void serialize(Archive & ar,
108
                   pinocchio::JointDataSphericalTpl<Scalar,Options> & joint,
109
                   const unsigned int version)
110
    {
111
      typedef pinocchio::JointDataSphericalTpl<Scalar,Options> JointType;
112
28
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
113
28
    }
114
115
    template <class Archive, typename Scalar, int Options>
116
28
    void serialize(Archive & ar,
117
                   pinocchio::JointDataSphericalZYXTpl<Scalar,Options> & joint,
118
                   const unsigned int version)
119
    {
120
      typedef pinocchio::JointDataSphericalZYXTpl<Scalar,Options> JointType;
121
28
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
122
28
    }
123
124
    template <class Archive, typename Scalar, int Options>
125
28
    void serialize(Archive & ar,
126
                   pinocchio::JointDataTranslationTpl<Scalar,Options> & joint,
127
                   const unsigned int version)
128
    {
129
      typedef pinocchio::JointDataTranslationTpl<Scalar,Options> JointType;
130
28
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
131
28
    }
132
133
    template <class Archive, typename Scalar, int Options>
134
28
    void serialize(Archive & ar,
135
                   pinocchio::JointDataRevoluteUnalignedTpl<Scalar,Options> & joint,
136
                   const unsigned int version)
137
    {
138
      typedef pinocchio::JointDataRevoluteUnalignedTpl<Scalar,Options> JointType;
139
28
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
140
28
    }
141
142
    template <class Archive, typename Scalar, int Options>
143
28
    void serialize(Archive & ar,
144
                   pinocchio::JointDataRevoluteUnboundedUnalignedTpl<Scalar,Options> & joint,
145
                   const unsigned int version)
146
    {
147
      typedef pinocchio::JointDataRevoluteUnboundedUnalignedTpl<Scalar,Options> JointType;
148
28
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
149
28
    }
150
151
    template <class Archive, typename Scalar, int Options>
152
28
    void serialize(Archive & ar,
153
                   pinocchio::JointDataPrismaticUnalignedTpl<Scalar,Options> & joint,
154
                   const unsigned int version)
155
    {
156
      typedef pinocchio::JointDataPrismaticUnalignedTpl<Scalar,Options> JointType;
157
28
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
158
28
    }
159
160
    template <class Archive, typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
161
28
    void serialize(Archive & ar,
162
                   pinocchio::JointDataCompositeTpl<Scalar,Options,JointCollectionTpl> & joint,
163
                   const unsigned int version)
164
    {
165
      typedef pinocchio::JointDataCompositeTpl<Scalar,Options,JointCollectionTpl> JointType;
166
28
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
167
168
28
      ::pinocchio::Serialize<JointType>::run(ar,joint);
169
28
    }
170
171
    template <class Archive, typename Scalar, int Options, template<typename S, int O> class JointCollectionTpl>
172
840
    void serialize(Archive & ar,
173
                   pinocchio::JointDataTpl<Scalar,Options,JointCollectionTpl> & joint,
174
                   const unsigned int /*version*/)
175
    {
176
      typedef typename JointCollectionTpl<Scalar,Options>::JointDataVariant JointDataVariant;
177
840
      ar & make_nvp("base_variant",base_object<JointDataVariant>(joint));
178
840
    }
179
180
    template <class Archive, typename JointData>
181
84
    void serialize(Archive & ar,
182
                   pinocchio::JointDataMimic<JointData> & joint,
183
                   const unsigned int version)
184
    {
185
      typedef pinocchio::JointDataMimic<JointData> JointType;
186
84
      fix::serialize(ar,static_cast<pinocchio::JointDataBase<JointType>&>(joint),version);
187
188
84
      ar & make_nvp("jdata",joint.jdata());
189
84
      ar & make_nvp("scaling",joint.scaling());
190
84
      ar & make_nvp("jointConfiguration",joint.jointConfiguration());
191
84
      ar & make_nvp("jointVelocity",joint.jointVelocity());
192
84
    }
193
194
  }
195
}
196
197
#endif // ifndef __pinocchio_serialization_joints_data_hpp__