eigen_serialization.h
Go to the documentation of this file.
1 
30 #ifndef TESSERACT_COMMON_EIGEN_SERIALIZATION_H
31 #define TESSERACT_COMMON_EIGEN_SERIALIZATION_H
32 
35 #include <variant>
36 #include <Eigen/Geometry>
37 #include <boost/archive/xml_oarchive.hpp>
38 #include <boost/archive/xml_iarchive.hpp>
39 #include <boost/archive/binary_oarchive.hpp>
40 #include <boost/archive/binary_iarchive.hpp>
41 #include <boost/serialization/tracking.hpp>
42 #include <boost/serialization/tracking_enum.hpp>
44 
45 namespace boost::serialization
46 {
47 /*****************************/
48 /****** Eigen::VectorXd ******/
49 /*****************************/
50 template <class Archive>
51 void save(Archive& ar, const Eigen::VectorXd& g, const unsigned int version); // NOLINT
52 
53 template <class Archive>
54 void load(Archive& ar, Eigen::VectorXd& g, const unsigned int version); // NOLINT
55 
56 template <class Archive>
57 void serialize(Archive& ar, Eigen::VectorXd& g, const unsigned int version); // NOLINT
58 
59 /*****************************/
60 /****** Eigen::Vector3d ******/
61 /*****************************/
62 template <class Archive>
63 void save(Archive& ar, const Eigen::Vector3d& g, const unsigned int version); // NOLINT
64 
65 template <class Archive>
66 void load(Archive& ar, Eigen::Vector3d& g, const unsigned int version); // NOLINT
67 
68 template <class Archive>
69 void serialize(Archive& ar, Eigen::Vector3d& g, const unsigned int version); // NOLINT
70 
71 /*****************************/
72 /****** Eigen::Vector4d ******/
73 /*****************************/
74 template <class Archive>
75 void save(Archive& ar, const Eigen::Vector4d& g, const unsigned int version); // NOLINT
76 
77 template <class Archive>
78 void load(Archive& ar, Eigen::Vector4d& g, const unsigned int version); // NOLINT
79 
80 template <class Archive>
81 void serialize(Archive& ar, Eigen::Vector4d& g, const unsigned int version); // NOLINT
82 
83 /*****************************/
84 /****** Eigen::VectorXi ******/
85 /*****************************/
86 template <class Archive>
87 void save(Archive& ar, const Eigen::VectorXi& g, const unsigned int version); // NOLINT
88 
89 template <class Archive>
90 void load(Archive& ar, Eigen::VectorXi& g, const unsigned int version); // NOLINT
91 
92 template <class Archive>
93 void serialize(Archive& ar, Eigen::VectorXi& g, const unsigned int version); // NOLINT
94 
95 /*****************************/
96 /****** Eigen::VectorXd ******/
97 /*****************************/
98 
99 template <class Archive>
100 void save(Archive& ar, const Eigen::Isometry3d& g, const unsigned int version); // NOLINT
101 
102 template <class Archive>
103 void load(Archive& ar, Eigen::Isometry3d& g, const unsigned int version); // NOLINT
104 
105 template <class Archive>
106 void serialize(Archive& ar, Eigen::Isometry3d& g, const unsigned int version); // NOLINT
107 
108 /*****************************/
109 /****** Eigen::MatrixX2d *****/
110 /*****************************/
111 template <class Archive>
112 void save(Archive& ar, const Eigen::MatrixX2d& g, const unsigned int version); // NOLINT
113 
114 template <class Archive>
115 void load(Archive& ar, Eigen::MatrixX2d& g, const unsigned int version); // NOLINT
116 
117 template <class Archive>
118 void serialize(Archive& ar, Eigen::MatrixX2d& g, const unsigned int version); // NOLINT
119 
120 /*********************************************************/
121 /****** std::variant<std::string, Eigen::Isometry3d> *****/
122 /*********************************************************/
123 template <class Archive>
124 void save(Archive& ar, const std::variant<std::string, Eigen::Isometry3d>& g, const unsigned int version); // NOLINT
125 
126 template <class Archive>
127 void load(Archive& ar, std::variant<std::string, Eigen::Isometry3d>& g, const unsigned int version); // NOLINT
128 
129 template <class Archive>
130 void serialize(Archive& ar, std::variant<std::string, Eigen::Isometry3d>& g, const unsigned int version); // NOLINT
131 
132 /****************************************/
133 /****** Eigen::Matrix<double, 6, 1> *****/
134 /****************************************/
135 
136 template <class Archive>
137 void serialize(Archive& ar, Eigen::Matrix<double, 6, 1>& g, const unsigned int version); // NOLINT
138 
139 } // namespace boost::serialization
140 
141 // Set the tracking to track_never for all Eigen types.
142 BOOST_CLASS_TRACKING(Eigen::VectorXd, boost::serialization::track_never)
143 BOOST_CLASS_TRACKING(Eigen::Vector3d, boost::serialization::track_never)
144 BOOST_CLASS_TRACKING(Eigen::Vector4d, boost::serialization::track_never)
145 BOOST_CLASS_TRACKING(Eigen::VectorXi, boost::serialization::track_never)
146 BOOST_CLASS_TRACKING(Eigen::Isometry3d, boost::serialization::track_never)
147 BOOST_CLASS_TRACKING(Eigen::MatrixX2d, boost::serialization::track_never)
148 
149 #endif // TESSERACT_COMMON_SERIALIZATION_H
boost::serialization::load
void load(Archive &ar, std::atomic< T > &t, const unsigned int)
Definition: atomic_serialization.h:49
boost::serialization::serialize
void serialize(Archive &ar, std::atomic< T > &t, const unsigned int version)
Definition: atomic_serialization.h:57
macros.h
Common Tesseract Macros.
TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
#define TESSERACT_COMMON_IGNORE_WARNINGS_PUSH
Definition: macros.h:71
boost::serialization
Definition: allowed_collision_matrix.h:14
TESSERACT_COMMON_IGNORE_WARNINGS_POP
#define TESSERACT_COMMON_IGNORE_WARNINGS_POP
Definition: macros.h:72
boost::serialization::save
void save(Archive &ar, const std::atomic< T > &t, const unsigned int)
Definition: atomic_serialization.h:42


tesseract_common
Author(s): Levi Armstrong
autogenerated on Sun May 18 2025 03:01:40