00001 00024 #ifndef RGBDTOOLS_TYPES_H 00025 #define RGBDTOOLS_TYPES_H 00026 00027 #include <Eigen/Core> 00028 #include <opencv2/core/core.hpp> 00029 #include <opencv2/features2d/features2d.hpp> 00030 #include <pcl/point_types.h> 00031 #include <pcl/kdtree/kdtree_flann.h> 00032 #include <pcl/registration/transformation_estimation_svd.h> 00033 00034 namespace rgbdtools { 00035 00036 // Eigen matrix types 00037 00038 typedef Eigen::Matrix3f Matrix3f; 00039 typedef Eigen::Vector3f Vector3f; 00040 typedef Eigen::Affine3f Pose; 00041 typedef Eigen::Affine3f AffineTransform; 00042 typedef Eigen::Matrix<double,6,6> InformationMatrix; 00043 00044 // Vector types 00045 00046 typedef std::vector<int> IntVector; 00047 typedef std::vector<float> FloatVector; 00048 typedef std::vector<bool> BoolVector; 00049 typedef std::vector<cv::Point2f> Point2fVector; 00050 typedef std::vector<cv::Point3f> Point3fVector; 00051 typedef std::vector<Eigen::Matrix3f> Matrix3fVector; 00052 typedef std::vector<Eigen::Vector3f> Vector3fVector; 00053 typedef std::vector<cv::KeyPoint> KeypointVector; 00054 typedef std::vector<cv::DMatch> DMatchVector; 00055 00056 typedef Eigen::aligned_allocator<AffineTransform> AffineTransformAllocator; 00057 typedef std::vector<AffineTransform, AffineTransformAllocator> AffineTransformVector; 00058 00059 // PCL types 00060 00061 typedef pcl::PointXYZRGB PointT; 00062 typedef pcl::PointCloud<PointT> PointCloudT; 00063 00064 typedef pcl::PointXYZ PointFeature; 00065 typedef pcl::PointCloud<PointFeature> PointCloudFeature; 00066 00067 typedef pcl::KdTreeFLANN<PointFeature> KdTree; 00068 typedef pcl::registration::TransformationEstimationSVD<PointFeature, PointFeature> TransformationEstimationSVD; 00069 00070 } // namespace rgbdtools 00071 00072 #endif // RGBDTOOLS_TYPES_H