24 #ifndef PMF_COM_MT_SERIALIZE_H
25 #define PMF_COM_MT_SERIALIZE_H
28 #include <boost/archive/text_oarchive.hpp>
29 #include <boost/archive/text_iarchive.hpp>
30 #include <boost/serialization/base_object.hpp>
31 #include <boost/serialization/variant.hpp>
32 #include <boost/serialization/string.hpp>
53 #include <mt/element.h>
54 #include <mt/object.h>
61 namespace serialization
80 template<
class Archive,
class T>
inline
87 template<
class Archive>
inline
88 void serialize(Archive& ar,
mt::Vector3& v,
const unsigned int version)
96 template<
class Archive>
inline
97 void serialize(Archive& ar,
mt::Unit3& u,
const unsigned int version)
99 ar & boost::serialization::base_object<mt::Vector3>(u);
103 template<
class Archive>
inline
104 void serialize(Archive& ar,
mt::Interval& i,
const unsigned int version)
106 ar & i.getLowerBoundRef();
107 ar & i.getUpperBoundRef();
111 template<
class Archive>
inline
112 void serialize(Archive& ar,
mt::Matrix3x3& M,
const unsigned int version)
120 template<
class Archive>
inline
121 void serialize(Archive& ar,
mt::Quaternion& q,
const unsigned int version)
130 template<
class Archive>
inline
131 void serialize(Archive& ar,
mt::Rotation& r,
const unsigned int version)
133 ar & boost::serialization::base_object<mt::Quaternion>(r);
137 template<
class Archive>
inline
138 void serialize(Archive& ar,
mt::Transform& t,
const unsigned int version)
140 ar & t.getRotationRef();
141 ar & t.getTranslationRef();
147 template<
class Archive>
inline
148 void serialize(Archive& ar,
mt::Empty& e,
const unsigned int version) {}
151 template<
class Archive>
inline
152 void serialize(Archive& ar,
mt::Point3& p,
const unsigned int version)
154 ar & boost::serialization::base_object<mt::Vector3>(p);
158 template<
class Archive>
inline
159 void serialize(Archive& ar,
mt::Line3& L,
const unsigned int version)
161 ar & L.getDirectionRef();
162 ar & L.getSupportRef();
163 ar & L.getDirectionTypeRef();
167 template<
class Archive>
inline
168 void serialize(Archive& ar,
mt::Plane3& P,
const unsigned int version)
170 ar & P.getNormalRef();
171 ar & P.getDistOrigRef();
172 ar & P.getDirectionTypeRef();
176 template<
class Archive>
inline
177 void serialize(Archive& ar,
mt::Sphere3& S,
const unsigned int version)
179 ar & S.getCenterRef();
180 ar & S.getRadiusRef();
184 template<
class Archive>
inline
185 void serialize(Archive& ar,
mt::Cylinder3& C,
const unsigned int version)
188 ar & C.getRadiusRef();
192 template<
class Archive>
inline
193 void serialize(Archive& ar,
mt::Circle3& C,
const unsigned int version)
195 ar & C.getCenterRef();
196 ar & C.getRadiusRef();
197 ar & C.getNormalRef();
201 template<
class Archive>
inline
202 void serialize(Archive& ar,
mt::Ellipse3& E,
const unsigned int version)
204 ar & E.getCenterRef();
205 ar & E.getAxisDirRef(1);
206 ar & E.getAxisDirRef(2);
207 ar & E.getAxisLengthRef(1);
208 ar & E.getAxisLengthRef(2);
214 template<
class Archive>
inline
215 void serialize(Archive& ar,
mt::Element& el,
const unsigned int version)
217 ar & el.getGeometryRef();
218 ar & el.getNameRef();
222 template<
class Archive>
inline
223 void serialize(Archive& ar,
mt::Object& obj,
const unsigned int version)
225 ar & obj.getOriginRef();
226 ar & obj.getNameRef();
233 #endif // PMF_COM_MT_SERIALIZE_H