pinocchio 4.1.0
A fast and flexible implementation of Rigid Body Dynamics algorithms and their analytical derivatives
Loading...
Searching...
No Matches
serialization.hpp
1//
2// Copyright (c) INRIA 2026
3//
4#pragma once
5
6// IWYU pragma: begin_keep
7#include <cassert>
8#include <new>
9#include <cstddef>
10#include <vector>
11#include <fstream>
12#include <locale>
13#include <string>
14#include <sstream>
15#include <stdexcept>
16#include <array>
17#include <algorithm>
18#include <iterator>
19#include <limits>
20
21#include <boost/version.hpp>
22#if BOOST_VERSION / 100 % 1000 == 78 && __APPLE__
23// See https://github.com/qcscine/utilities/issues/5#issuecomment-1246897049 for further details
24
25 #ifndef BOOST_ASIO_DISABLE_STD_ALIGNED_ALLOC
26 #define DEFINE_BOOST_ASIO_DISABLE_STD_ALIGNED_ALLOC
27 #define BOOST_ASIO_DISABLE_STD_ALIGNED_ALLOC
28 #endif
29
30 #include <boost/asio/streambuf.hpp>
31
32 #ifdef DEFINE_BOOST_ASIO_DISABLE_STD_ALIGNED_ALLOC
33 #undef BOOST_ASIO_DISABLE_STD_ALIGNED_ALLOC
34 #endif
35
36#else
37 #include <boost/asio/streambuf.hpp>
38#endif
39#include <boost/archive/basic_archive.hpp>
40#include <boost/archive/text_oarchive.hpp>
41#include <boost/archive/text_iarchive.hpp>
42#include <boost/archive/xml_iarchive.hpp>
43#include <boost/archive/xml_oarchive.hpp>
44#include <boost/archive/binary_iarchive.hpp>
45#include <boost/archive/binary_oarchive.hpp>
46#include <boost/serialization/base_object.hpp>
47#include <boost/serialization/nvp.hpp>
48#include <boost/serialization/array_wrapper.hpp>
49#include <boost/serialization/split_free.hpp>
50#include <boost/serialization/throw_exception.hpp>
51#include <boost/serialization/array.hpp>
52#include <boost/serialization/vector.hpp>
53#include <boost/serialization/map.hpp>
54#include <boost/serialization/set.hpp>
55#include <boost/serialization/variant.hpp>
56#include <boost/serialization/utility.hpp>
57#include <boost/serialization/shared_ptr.hpp>
58#include <boost/math/special_functions/nonfinite_num_facets.hpp>
59#include <boost/iostreams/device/array.hpp>
60#include <boost/iostreams/stream.hpp>
61#include <boost/iostreams/stream_buffer.hpp>
62#include <boost/blank.hpp>
63
64#include <Eigen/Core>
65
66#ifdef PINOCCHIO_WITH_COLLISION
67 #define COAL_SKIP_EIGEN_BOOST_SERIALIZATION
68 #include <coal/serialization/collision_data.h>
69 #undef COAL_SKIP_EIGEN_BOOST_SERIALIZATION
70 #include <coal/serialization/geometric_shapes.h>
71 #include <coal/serialization/hfield.h>
72 #include <coal/serialization/octree.h>
73 #include <coal/serialization/convex.h>
74 #include <coal/serialization/BVH_model.h>
75#endif // PINOCCHIO_WITH_COLLISION
76
77#include "pinocchio/macros.hpp"
78// TODO This is done for pinocchio 3 back compatibility
79#include <pinocchio/config.hpp>
80
81#include "pinocchio/container/double-entry-container.hpp"
82#include "pinocchio/container/matrix-stack.hpp"
83#include "pinocchio/src/container/eigen-storage.hxx"
84
85#include "pinocchio/math.hpp"
86#include "pinocchio/spatial.hpp"
87#include "pinocchio/multibody.hpp"
88#include "pinocchio/multibody/joint.hpp"
89#include "pinocchio/geometry.hpp"
90
91#include "pinocchio/constraints.hpp"
92#include "pinocchio/algorithm/fwd.hpp"
93// IWYU pragma: end_keep
94
95// IWYU pragma: begin_exports
96#include "pinocchio/src/serialization/fwd.hxx"
97#include "pinocchio/src/serialization/common.hxx"
98#include "pinocchio/src/serialization/static-buffer.hxx"
99#include "pinocchio/src/serialization/boost-blank.hxx"
100#include "pinocchio/src/serialization/archive.hxx"
101#include "pinocchio/src/serialization/serializable.hxx"
102#include "pinocchio/src/serialization/vector.hxx"
103#include "pinocchio/src/serialization/coal.hxx"
104#include "pinocchio/src/serialization/csv.hxx"
105#include "pinocchio/src/serialization/eigen.hxx"
106#include "pinocchio/src/serialization/matrix-stack.hxx"
107#include "pinocchio/src/serialization/double-entry-container.hxx"
108#include "pinocchio/src/serialization/eigen-storage.hxx"
109#include "pinocchio/src/serialization/symmetric3.hxx"
110#include "pinocchio/src/serialization/se3.hxx"
111#include "pinocchio/src/serialization/motion.hxx"
112#include "pinocchio/src/serialization/force.hxx"
113#include "pinocchio/src/serialization/inertia.hxx"
114#include "pinocchio/src/serialization/joints-motion-subspace.hxx"
115#include "pinocchio/src/serialization/joints-motion.hxx"
116#include "pinocchio/src/serialization/joints-transform.hxx"
117#include "pinocchio/src/serialization/joints-data.hxx"
118#include "pinocchio/src/serialization/joints-model.hxx"
119#include "pinocchio/src/serialization/frame.hxx"
120#include "pinocchio/src/serialization/model.hxx"
121#include "pinocchio/src/serialization/data.hxx"
122#include "pinocchio/src/serialization/matrix-block-element.hxx"
123#include "pinocchio/src/serialization/block-diagonal-matrix.hxx"
124#include "pinocchio/src/serialization/constraints-data.hxx"
125#include "pinocchio/src/serialization/constraints-model.hxx"
126#include "pinocchio/src/serialization/constraints-set.hxx"
127#include "pinocchio/src/serialization/delassus.hxx"
128#include "pinocchio/src/serialization/geometry.hxx"
129// IWYU pragma: end_exports