12 #include <pcl/point_struct_traits.h>
33 #include <boost/mpl/and.hpp>
34 #include <boost/mpl/bool.hpp>
35 #include <boost/mpl/contains.hpp>
36 #include <boost/mpl/fold.hpp>
37 #include <boost/mpl/or.hpp>
38 #include <boost/mpl/placeholders.hpp>
39 #include <boost/mpl/vector.hpp>
46 template <
typename Po
intT,
typename Field>
47 struct has_field : boost::mpl::contains<typename pcl::traits::fieldList<PointT>::type, Field>::type
50 template <
typename Po
intT,
typename Field>
52 boost::mpl::bool_<true>,
53 boost::mpl::and_<boost::mpl::_1,
54 has_field<PointT, boost::mpl::_2> > >::type
57 template <
typename Po
intT,
typename Field>
59 boost::mpl::bool_<false>,
60 boost::mpl::or_<boost::mpl::_1,
61 has_field<PointT, boost::mpl::_2> > >::type
64 template <
typename Po
intT>
69 template <
typename Po
intT>
75 template <
typename Po
intT>
77 pcl::fields::normal_y,
78 pcl::fields::normal_z> >
81 template <
typename Po
intT>
85 template <
typename Po
intT>
89 template <
typename Po
intT>
94 template <
typename Po
intT>
Metafunction to check if a given point type has all given fields.
Metafunction to check if a given point type has any of the given fields.
Metafunction to check if a given point type has either rgb or rgba field.
Metafunction to check if a given point type has curvature field.
Metafunction to check if a given point type has a given field.
Metafunction to check if a given point type has intensity field.
Metafunction to check if a given point type has label field.
Metafunction to check if a given point type has normal_x, normal_y, and normal_z fields.
Traits defined for ease of use with common fields.
Metafunction to check if a given point type has x, y, and z fields.