5#ifndef __pinocchio_multibody_data_serialization_hpp__ 
    6#define __pinocchio_multibody_data_serialization_hpp__ 
    8#include <boost/serialization/variant.hpp> 
    9#include <boost/serialization/vector.hpp> 
   11#include "pinocchio/serialization/aligned-vector.hpp" 
   12#include "pinocchio/serialization/spatial.hpp" 
   13#include "pinocchio/serialization/eigen.hpp" 
   14#include "pinocchio/serialization/joints.hpp" 
   15#include "pinocchio/serialization/frame.hpp" 
   17#define PINOCCHIO_MAKE_DATA_NVP(ar, data, field_name) ar & make_nvp(#field_name, data.field_name) 
   21  namespace serialization
 
   27      template<
typename, 
int> 
class JointCollectionTpl>
 
   33      PINOCCHIO_MAKE_DATA_NVP(ar, data, joints);
 
   34      PINOCCHIO_MAKE_DATA_NVP(ar, data, a);
 
   35      PINOCCHIO_MAKE_DATA_NVP(ar, data, oa);
 
   36      PINOCCHIO_MAKE_DATA_NVP(ar, data, oa_drift);
 
   37      PINOCCHIO_MAKE_DATA_NVP(ar, data, oa_augmented);
 
   38      PINOCCHIO_MAKE_DATA_NVP(ar, data, a_gf);
 
   39      PINOCCHIO_MAKE_DATA_NVP(ar, data, oa_gf);
 
   40      PINOCCHIO_MAKE_DATA_NVP(ar, data, v);
 
   41      PINOCCHIO_MAKE_DATA_NVP(ar, data, ov);
 
   42      PINOCCHIO_MAKE_DATA_NVP(ar, data, f);
 
   43      PINOCCHIO_MAKE_DATA_NVP(ar, data, of);
 
   44      PINOCCHIO_MAKE_DATA_NVP(ar, data, of_augmented);
 
   45      PINOCCHIO_MAKE_DATA_NVP(ar, data, h);
 
   46      PINOCCHIO_MAKE_DATA_NVP(ar, data, oh);
 
   47      PINOCCHIO_MAKE_DATA_NVP(ar, data, oMi);
 
   48      PINOCCHIO_MAKE_DATA_NVP(ar, data, liMi);
 
   49      PINOCCHIO_MAKE_DATA_NVP(ar, data, tau);
 
   50      PINOCCHIO_MAKE_DATA_NVP(ar, data, nle);
 
   51      PINOCCHIO_MAKE_DATA_NVP(ar, data, g);
 
   52      PINOCCHIO_MAKE_DATA_NVP(ar, data, oMf);
 
   53      PINOCCHIO_MAKE_DATA_NVP(ar, data, Ycrb);
 
   54      PINOCCHIO_MAKE_DATA_NVP(ar, data, dYcrb);
 
   55      PINOCCHIO_MAKE_DATA_NVP(ar, data, M);
 
   56      PINOCCHIO_MAKE_DATA_NVP(ar, data, Minv);
 
   57      PINOCCHIO_MAKE_DATA_NVP(ar, data, C);
 
   58      PINOCCHIO_MAKE_DATA_NVP(ar, data, dHdq);
 
   59      PINOCCHIO_MAKE_DATA_NVP(ar, data, dFdq);
 
   60      PINOCCHIO_MAKE_DATA_NVP(ar, data, dFdv);
 
   61      PINOCCHIO_MAKE_DATA_NVP(ar, data, dFda);
 
   62      PINOCCHIO_MAKE_DATA_NVP(ar, data, SDinv);
 
   63      PINOCCHIO_MAKE_DATA_NVP(ar, data, UDinv);
 
   64      PINOCCHIO_MAKE_DATA_NVP(ar, data, IS);
 
   65      PINOCCHIO_MAKE_DATA_NVP(ar, data, vxI);
 
   66      PINOCCHIO_MAKE_DATA_NVP(ar, data, Ivx);
 
   67      PINOCCHIO_MAKE_DATA_NVP(ar, data, B);
 
   68      PINOCCHIO_MAKE_DATA_NVP(ar, data, oinertias);
 
   69      PINOCCHIO_MAKE_DATA_NVP(ar, data, oYcrb);
 
   70      PINOCCHIO_MAKE_DATA_NVP(ar, data, doYcrb);
 
   71      PINOCCHIO_MAKE_DATA_NVP(ar, data, ddq);
 
   72      PINOCCHIO_MAKE_DATA_NVP(ar, data, Yaba);
 
   73      PINOCCHIO_MAKE_DATA_NVP(ar, data, oYaba);
 
   74      PINOCCHIO_MAKE_DATA_NVP(ar, data, oYaba_contact);
 
   75      PINOCCHIO_MAKE_DATA_NVP(ar, data, oL);
 
   76      PINOCCHIO_MAKE_DATA_NVP(ar, data, oK);
 
   77      PINOCCHIO_MAKE_DATA_NVP(ar, data, u);
 
   78      PINOCCHIO_MAKE_DATA_NVP(ar, data, Ag);
 
   79      PINOCCHIO_MAKE_DATA_NVP(ar, data, dAg);
 
   80      PINOCCHIO_MAKE_DATA_NVP(ar, data, hg);
 
   81      PINOCCHIO_MAKE_DATA_NVP(ar, data, dhg);
 
   82      PINOCCHIO_MAKE_DATA_NVP(ar, data, Ig);
 
   83      PINOCCHIO_MAKE_DATA_NVP(ar, data, Fcrb);
 
   84      PINOCCHIO_MAKE_DATA_NVP(ar, data, lastChild);
 
   85      PINOCCHIO_MAKE_DATA_NVP(ar, data, nvSubtree);
 
   86      PINOCCHIO_MAKE_DATA_NVP(ar, data, start_idx_v_fromRow);
 
   87      PINOCCHIO_MAKE_DATA_NVP(ar, data, end_idx_v_fromRow);
 
   88      PINOCCHIO_MAKE_DATA_NVP(ar, data, U);
 
   89      PINOCCHIO_MAKE_DATA_NVP(ar, data, D);
 
   90      PINOCCHIO_MAKE_DATA_NVP(ar, data, Dinv);
 
   91      PINOCCHIO_MAKE_DATA_NVP(ar, data, parents_fromRow);
 
   92      PINOCCHIO_MAKE_DATA_NVP(ar, data, mimic_parents_fromRow);
 
   93      PINOCCHIO_MAKE_DATA_NVP(ar, data, non_mimic_parents_fromRow);
 
   94      PINOCCHIO_MAKE_DATA_NVP(ar, data, idx_vExtended_to_idx_v_fromRow);
 
   95      PINOCCHIO_MAKE_DATA_NVP(ar, data, mimic_subtree_joint);
 
   96      PINOCCHIO_MAKE_DATA_NVP(ar, data, supports_fromRow);
 
   97      PINOCCHIO_MAKE_DATA_NVP(ar, data, nvSubtree_fromRow);
 
   98      PINOCCHIO_MAKE_DATA_NVP(ar, data, J);
 
   99      PINOCCHIO_MAKE_DATA_NVP(ar, data, dJ);
 
  100      PINOCCHIO_MAKE_DATA_NVP(ar, data, ddJ);
 
  101      PINOCCHIO_MAKE_DATA_NVP(ar, data, psid);
 
  102      PINOCCHIO_MAKE_DATA_NVP(ar, data, psidd);
 
  103      PINOCCHIO_MAKE_DATA_NVP(ar, data, dVdq);
 
  104      PINOCCHIO_MAKE_DATA_NVP(ar, data, dAdq);
 
  105      PINOCCHIO_MAKE_DATA_NVP(ar, data, dAdv);
 
  106      PINOCCHIO_MAKE_DATA_NVP(ar, data, dtau_dq);
 
  107      PINOCCHIO_MAKE_DATA_NVP(ar, data, dtau_dv);
 
  108      PINOCCHIO_MAKE_DATA_NVP(ar, data, ddq_dq);
 
  109      PINOCCHIO_MAKE_DATA_NVP(ar, data, ddq_dv);
 
  110      PINOCCHIO_MAKE_DATA_NVP(ar, data, dvc_dq);
 
  111      PINOCCHIO_MAKE_DATA_NVP(ar, data, dac_dq);
 
  112      PINOCCHIO_MAKE_DATA_NVP(ar, data, dac_dv);
 
  113      PINOCCHIO_MAKE_DATA_NVP(ar, data, dac_da);
 
  114      PINOCCHIO_MAKE_DATA_NVP(ar, data, osim);
 
  115      PINOCCHIO_MAKE_DATA_NVP(ar, data, dlambda_dq);
 
  116      PINOCCHIO_MAKE_DATA_NVP(ar, data, dlambda_dv);
 
  117      PINOCCHIO_MAKE_DATA_NVP(ar, data, dlambda_dtau);
 
  118      PINOCCHIO_MAKE_DATA_NVP(ar, data, dlambda_dx_prox);
 
  119      PINOCCHIO_MAKE_DATA_NVP(ar, data, drhs_prox);
 
  120      PINOCCHIO_MAKE_DATA_NVP(ar, data, iMf);
 
  121      PINOCCHIO_MAKE_DATA_NVP(ar, data, com);
 
  122      PINOCCHIO_MAKE_DATA_NVP(ar, data, vcom);
 
  123      PINOCCHIO_MAKE_DATA_NVP(ar, data, acom);
 
  124      PINOCCHIO_MAKE_DATA_NVP(ar, data, mass);
 
  125      PINOCCHIO_MAKE_DATA_NVP(ar, data, Jcom);
 
  126      PINOCCHIO_MAKE_DATA_NVP(ar, data, kinetic_energy);
 
  127      PINOCCHIO_MAKE_DATA_NVP(ar, data, potential_energy);
 
  128      PINOCCHIO_MAKE_DATA_NVP(ar, data, mechanical_energy);
 
  129      PINOCCHIO_MAKE_DATA_NVP(ar, data, JMinvJt);
 
  130      PINOCCHIO_MAKE_DATA_NVP(ar, data, lambda_c);
 
  131      PINOCCHIO_MAKE_DATA_NVP(ar, data, torque_residual);
 
  132      PINOCCHIO_MAKE_DATA_NVP(ar, data, dq_after);
 
  133      PINOCCHIO_MAKE_DATA_NVP(ar, data, impulse_c);
 
  134      PINOCCHIO_MAKE_DATA_NVP(ar, data, lambda_c_prox);
 
  135      PINOCCHIO_MAKE_DATA_NVP(ar, data, diff_lambda_c);
 
  136      PINOCCHIO_MAKE_DATA_NVP(ar, data, sDUiJt);
 
  137      PINOCCHIO_MAKE_DATA_NVP(ar, data, staticRegressor);
 
  138      PINOCCHIO_MAKE_DATA_NVP(ar, data, bodyRegressor);
 
  139      PINOCCHIO_MAKE_DATA_NVP(ar, data, jointTorqueRegressor);
 
  140      PINOCCHIO_MAKE_DATA_NVP(ar, data, d2tau_dqdq);
 
  141      PINOCCHIO_MAKE_DATA_NVP(ar, data, d2tau_dvdv);
 
  142      PINOCCHIO_MAKE_DATA_NVP(ar, data, d2tau_dqdv);
 
  143      PINOCCHIO_MAKE_DATA_NVP(ar, data, d2tau_dadq);
 
  144      PINOCCHIO_MAKE_DATA_NVP(ar, data, kinematic_hessians);
 
  145      PINOCCHIO_MAKE_DATA_NVP(ar, data, primal_dual_contact_solution);
 
  151#undef PINOCCHIO_MAKE_DATA_NVP