00001 00018 #ifndef TRANSFORMATION_DATA_H 00019 #define TRANSFORMATION_DATA_H 00020 00021 #include <fstream> 00022 #ifndef Q_MOC_RUN 00023 #include <Eigen/Core> 00024 #endif 00025 00026 //Add the Eigen Matrix class to boost, so it knows how to serialize it 00027 /*#ifndef EIGEN_BOOST_SERIALIZATION 00028 #define EIGEN_BOOST_SERIALIZATION 00029 #include <Eigen/Dense> 00030 #include <boost/serialization/split_free.hpp> 00031 #include <boost/serialization/vector.hpp> 00032 00033 namespace boost{namespace serialization{ 00034 template <class Archive, typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols> 00035 void save(Archive & ar, const Eigen::Matrix<_Scalar,_Rows,_Cols,_Options,_MaxRows,_MaxCols> & m, const unsigned int version) { 00036 int rows=m.rows(),cols=m.cols(); 00037 ar & rows; 00038 ar & cols; 00039 ar & boost::serialization::make_array(m.data(), rows*cols); 00040 } 00041 template <class Archive, typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols> 00042 void load(Archive & ar, Eigen::Matrix<_Scalar,_Rows,_Cols,_Options,_MaxRows,_MaxCols> & m, const unsigned int version) { 00043 int rows,cols; 00044 ar & rows; 00045 ar & cols; 00046 m.resize(rows,cols); 00047 ar & boost::serialization::make_array(m.data(), rows*cols); 00048 } 00049 00050 template <class Archive, typename _Scalar, int _Rows, int _Cols, int _Options, int _MaxRows, int _MaxCols> 00051 void serialize(Archive & ar, Eigen::Matrix<_Scalar,_Rows,_Cols,_Options,_MaxRows,_MaxCols> & m, const unsigned int version) { 00052 split_free(ar,m,version); 00053 } 00054 00055 }} 00056 #endif*/ 00057 00058 //--------------------------------------------- 00059 // Begin of the actual class 00060 //--------------------------------------------- 00061 class Transformation_Data 00062 { 00063 public: 00064 EIGEN_MAKE_ALIGNED_OPERATOR_NEW 00065 Transformation_Data(); 00066 Transformation_Data(Eigen::Matrix4d PTU_Frame, Eigen::Matrix4d LaserScan_Frame, double pan,double tilt); 00067 Eigen::Matrix4d PTU_Frame; 00068 Eigen::Matrix4d LaserScan_Frame; 00069 double pan; 00070 double tilt; 00071 private: 00072 /*friend class boost::serialization::access; 00073 template <class Archive> 00074 void serialize(Archive & ar, const unsigned int version) 00075 { 00076 ar & pan; 00077 ar & tilt; 00078 ar & PTU_Frame; 00079 ar & LaserScan_Frame; 00080 }*/ 00081 }; 00082 00083 #endif // TRANSFORMATION_DATA_H