Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040 #ifndef PCL_REGISTRATION_BOOST_GRAPH_H_
00041 #define PCL_REGISTRATION_BOOST_GRAPH_H_
00042
00043 #include <boost/graph/adjacency_list.hpp>
00044 #include <Eigen/StdVector>
00045 #include <list>
00046
00047 namespace boost
00048 {
00049
00050 struct eigen_vecS
00051 {
00052 };
00053
00054 template <class ValueType>
00055 struct container_gen<eigen_vecS, ValueType>
00056 {
00057 typedef std::vector<ValueType, Eigen::aligned_allocator<ValueType> > type;
00058 };
00059
00060 template <>
00061 struct parallel_edge_traits<eigen_vecS>
00062 {
00063 typedef allow_parallel_edge_tag type;
00064 };
00065
00066 namespace detail
00067 {
00068 template <>
00069 struct is_random_access<eigen_vecS>
00070 {
00071 enum { value = true };
00072 typedef mpl::true_ type;
00073 };
00074 }
00075
00076 struct eigen_listS
00077 {
00078 };
00079
00080 template <class ValueType>
00081 struct container_gen<eigen_listS, ValueType>
00082 {
00083 typedef std::list<ValueType, Eigen::aligned_allocator<ValueType> > type;
00084 };
00085
00086 template <>
00087 struct parallel_edge_traits<eigen_listS>
00088 {
00089 typedef allow_parallel_edge_tag type;
00090 };
00091
00092 namespace detail
00093 {
00094 template <>
00095 struct is_random_access<eigen_listS>
00096 {
00097 enum { value = false };
00098 typedef mpl::false_ type;
00099 };
00100 }
00101 }
00102
00103 #endif // PCL_REGISTRATION_BOOST_GRAPH_H_