unordered_map_voxel.h
Go to the documentation of this file.
00001 /*************************************************************************
00002   > File Name: src/unordered_map_voxel.h
00003   > Author: 吴乃亮
00004   > Mail: wunailiang@gmail.com
00005   > Created Time: Mon 28 Apr 2014 04:22:04 PM CST
00006  ************************************************************************/
00007 
00008 #ifndef Unordered_map_h
00009 #define Unordered_map_h
00010 
00011 #include <iostream>
00012 #include <vector>
00013 #include <boost/unordered_map.hpp>
00014 #include <eigen3/Eigen/Dense>
00015 using namespace std;
00016 using namespace boost;
00017 using namespace Eigen;
00018 
00019 class unordered_map_voxel
00020 {
00021     public:
00022         unordered_map_voxel(double x,double y,double z,double resolution): //用于从点的三坐标得到栅格坐标
00023             _resolution(resolution)
00024     {
00025         if(x>=0)
00026             _x= x/resolution +1;
00027         else
00028             _x = x/resolution -1;
00029         if(y>=0)
00030             _y = y/resolution +1;
00031         else
00032             _y = y/resolution -1;
00033         if(z>=0)
00034             _z = z/resolution +1;
00035         else
00036             _z = z/resolution -1;
00037     }
00038         unordered_map_voxel(int x,int y,int z):
00039             _x(x),
00040             _y(y),
00041             _z(z)
00042     {}
00043 
00044         //用于从点的三坐标得到栅格坐标
00045         bool operator== (const unordered_map_voxel& v) const // 判断是否相同
00046         {
00047             return _x == v._x && _y == v._y && _z == v._z;
00048         }
00049 
00050         const int x() const
00051         {
00052             return _x;
00053         }
00054         const int y() const
00055         {
00056             return _y;
00057         }
00058         const int z() const
00059         {
00060             return _z;
00061         }
00062     private:
00063         double _resolution;
00064         int _x; // 三坐标
00065         int _y;
00066         int _z;
00067 };
00068 
00069 size_t hash_value(const unordered_map_voxel &v);
00070 
00071 
00072 class un_key
00073 {
00074     public:
00075         int cout;
00076         double c;
00077         double p;
00078         vector<int> vec_index_point;
00079         Vector3d u;
00080         VectorXcd v1;
00081         VectorXcd v3;
00082         Matrix<double,9,1> vector_9D;
00083         Matrix3d matS;
00084 };
00085 
00086 //这个类用于对特征向量进行排序
00087 class eigen_sort
00088 {
00089     public:
00090         eigen_sort()
00091         {
00092 
00093         }
00094         eigen_sort(double value,VectorXcd vector):
00095             eigen_value(value),
00096             eigen_vector(vector)
00097     {}
00098 
00099         bool operator < (const eigen_sort &e) const
00100         {
00101             return eigen_value < e.eigen_value;
00102         }
00103         double eigen_value;
00104         VectorXcd eigen_vector;
00105 };
00106 #endif


dlut_hash_icp
Author(s): Zhuang Yan , Yan Fei, Wu Nai Liang
autogenerated on Thu Jun 6 2019 18:56:21