#include <pcl/pcl_macros.h>
#include <pcl/point_traits.h>
#include <boost/mpl/vector.hpp>
#include <boost/preprocessor/seq/enum.hpp>
#include <boost/preprocessor/seq/for_each.hpp>
#include <boost/preprocessor/seq/transform.hpp>
#include <boost/preprocessor/cat.hpp>
#include <boost/preprocessor/comparison.hpp>
#include <boost/utility.hpp>
#include <boost/type_traits.hpp>
#include <stddef.h>
Go to the source code of this file.
Namespaces | |
namespace | pcl |
namespace | pcl::traits |
Defines | |
#define | PCL_DIVEQSC_POINT_TAG(r, data, elem) |
#define | PCL_MINUSEQ_POINT_TAG(r, data, elem) |
#define | PCL_MINUSEQSC_POINT_TAG(r, data, elem) |
#define | PCL_MULEQSC_POINT_TAG(r, data, elem) |
#define | PCL_PLUSEQ_POINT_TAG(r, data, elem) |
#define | PCL_PLUSEQSC_POINT_TAG(r, data, elem) |
#define | POINT_CLOUD_EXTRACT_TAGS(seq) BOOST_PP_SEQ_TRANSFORM(POINT_CLOUD_TAG_OP, _, seq) |
#define | POINT_CLOUD_REGISTER_FIELD_DATATYPE(r, name, elem) |
#define | POINT_CLOUD_REGISTER_FIELD_NAME(r, point, elem) |
#define | POINT_CLOUD_REGISTER_FIELD_OFFSET(r, name, elem) |
#define | POINT_CLOUD_REGISTER_FIELD_TAG(r, name, elem) |
#define | POINT_CLOUD_REGISTER_POINT_FIELD_LIST(name, seq) |
#define | POINT_CLOUD_REGISTER_POINT_STRUCT(name, fseq) |
#define | POINT_CLOUD_REGISTER_POINT_STRUCT_I(name, seq) |
#define | POINT_CLOUD_REGISTER_POINT_STRUCT_X(type, name, tag) ((type, name, tag)) POINT_CLOUD_REGISTER_POINT_STRUCT_Y |
#define | POINT_CLOUD_REGISTER_POINT_STRUCT_X0 |
#define | POINT_CLOUD_REGISTER_POINT_STRUCT_Y(type, name, tag) ((type, name, tag)) POINT_CLOUD_REGISTER_POINT_STRUCT_X |
#define | POINT_CLOUD_REGISTER_POINT_STRUCT_Y0 |
#define | POINT_CLOUD_REGISTER_POINT_WRAPPER(wrapper, pod) |
#define | POINT_CLOUD_TAG_OP(s, data, elem) pcl::fields::BOOST_PP_TUPLE_ELEM(3, 2, elem) |
Functions | |
template<typename T1 , typename T2 > | |
boost::disable_if_c < boost::is_array< T1 >::value > ::type | pcl::traits::divscalar (T1 &p, const T2 &scalar) |
template<typename T > | |
boost::disable_if_c < boost::is_array< T >::value > ::type | pcl::traits::minus (T &l, const T &r) |
template<typename T > | |
boost::enable_if_c < boost::is_array< T >::value > ::type | pcl::traits::minus (typename boost::remove_const< T >::type &l, const T &r) |
template<typename T1 , typename T2 > | |
boost::disable_if_c < boost::is_array< T1 >::value > ::type | pcl::traits::minusscalar (T1 &p, const T2 &scalar) |
template<typename T1 , typename T2 > | |
boost::disable_if_c < boost::is_array< T1 >::value > ::type | pcl::traits::mulscalar (T1 &p, const T2 &scalar) |
template<typename T > | |
boost::disable_if_c < boost::is_array< T >::value > ::type | pcl::traits::plus (T &l, const T &r) |
template<typename T > | |
boost::enable_if_c < boost::is_array< T >::value > ::type | pcl::traits::plus (typename boost::remove_const< T >::type &l, const T &r) |
template<typename T1 , typename T2 > | |
boost::disable_if_c < boost::is_array< T1 >::value > ::type | pcl::traits::plusscalar (T1 &p, const T2 &scalar) |
#define PCL_DIVEQSC_POINT_TAG | ( | r, | |
data, | |||
elem | |||
) |
pcl::traits::divscalar (p.BOOST_PP_TUPLE_ELEM(3, 1, elem), \ scalar); \ /***/
Definition at line 229 of file register_point_struct.h.
#define PCL_MINUSEQ_POINT_TAG | ( | r, | |
data, | |||
elem | |||
) |
pcl::traits::minus (lhs.BOOST_PP_TUPLE_ELEM(3, 1, elem), \ rhs.BOOST_PP_TUPLE_ELEM(3, 1, elem)); \ /***/
Definition at line 213 of file register_point_struct.h.
#define PCL_MINUSEQSC_POINT_TAG | ( | r, | |
data, | |||
elem | |||
) |
pcl::traits::minusscalar (p.BOOST_PP_TUPLE_ELEM(3, 1, elem), \ scalar); \ /***/
Definition at line 218 of file register_point_struct.h.
#define PCL_MULEQSC_POINT_TAG | ( | r, | |
data, | |||
elem | |||
) |
pcl::traits::mulscalar (p.BOOST_PP_TUPLE_ELEM(3, 1, elem), \ scalar); \ /***/
Definition at line 224 of file register_point_struct.h.
#define PCL_PLUSEQ_POINT_TAG | ( | r, | |
data, | |||
elem | |||
) |
pcl::traits::plus (lhs.BOOST_PP_TUPLE_ELEM(3, 1, elem), \ rhs.BOOST_PP_TUPLE_ELEM(3, 1, elem)); \ /***/
Definition at line 202 of file register_point_struct.h.
#define PCL_PLUSEQSC_POINT_TAG | ( | r, | |
data, | |||
elem | |||
) |
pcl::traits::plusscalar (p.BOOST_PP_TUPLE_ELEM(3, 1, elem), \ scalar); \ /***/
Definition at line 207 of file register_point_struct.h.
#define POINT_CLOUD_EXTRACT_TAGS | ( | seq | ) | BOOST_PP_SEQ_TRANSFORM(POINT_CLOUD_TAG_OP, _, seq) |
Definition at line 354 of file register_point_struct.h.
#define POINT_CLOUD_REGISTER_FIELD_DATATYPE | ( | r, | |
name, | |||
elem | |||
) |
template<> struct datatype<name, pcl::fields::BOOST_PP_TUPLE_ELEM(3, 2, elem)> \ { \ typedef boost::mpl::identity<BOOST_PP_TUPLE_ELEM(3, 0, elem)>::type type; \ typedef decomposeArray<type> decomposed; \ static const uint8_t value = asEnum<decomposed::type>::value; \ static const uint32_t size = decomposed::value; \ }; \ /***/
Definition at line 342 of file register_point_struct.h.
#define POINT_CLOUD_REGISTER_FIELD_NAME | ( | r, | |
point, | |||
elem | |||
) |
template<int dummy> \ struct name<point, pcl::fields::BOOST_PP_TUPLE_ELEM(3, 2, elem), dummy> \ { \ static const char value[]; \ }; \ \ template<int dummy> \ const char name<point, \ pcl::fields::BOOST_PP_TUPLE_ELEM(3, 2, elem), \ dummy>::value[] = \ BOOST_PP_STRINGIZE(BOOST_PP_TUPLE_ELEM(3, 2, elem)); \ /***/
Definition at line 317 of file register_point_struct.h.
#define POINT_CLOUD_REGISTER_FIELD_OFFSET | ( | r, | |
name, | |||
elem | |||
) |
template<> struct offset<name, pcl::fields::BOOST_PP_TUPLE_ELEM(3, 2, elem)> \ { \ static const size_t value = offsetof(name, BOOST_PP_TUPLE_ELEM(3, 1, elem)); \ }; \ /***/
Definition at line 331 of file register_point_struct.h.
#define POINT_CLOUD_REGISTER_FIELD_TAG | ( | r, | |
name, | |||
elem | |||
) |
struct BOOST_PP_TUPLE_ELEM(3, 2, elem); \ /***/
Definition at line 313 of file register_point_struct.h.
#define POINT_CLOUD_REGISTER_POINT_FIELD_LIST | ( | name, | |
seq | |||
) |
template<> struct fieldList<name> \ { \ typedef boost::mpl::vector<BOOST_PP_SEQ_ENUM(seq)> type; \ }; \ /***/
Definition at line 356 of file register_point_struct.h.
#define POINT_CLOUD_REGISTER_POINT_STRUCT | ( | name, | |
fseq | |||
) |
POINT_CLOUD_REGISTER_POINT_STRUCT_I(name, \ BOOST_PP_CAT(POINT_CLOUD_REGISTER_POINT_STRUCT_X fseq, 0)) \ /***/
Definition at line 70 of file register_point_struct.h.
#define POINT_CLOUD_REGISTER_POINT_STRUCT_I | ( | name, | |
seq | |||
) |
Definition at line 237 of file register_point_struct.h.
#define POINT_CLOUD_REGISTER_POINT_STRUCT_X | ( | type, | |
name, | |||
tag | |||
) | ((type, name, tag)) POINT_CLOUD_REGISTER_POINT_STRUCT_Y |
Definition at line 86 of file register_point_struct.h.
Definition at line 90 of file register_point_struct.h.
#define POINT_CLOUD_REGISTER_POINT_STRUCT_Y | ( | type, | |
name, | |||
tag | |||
) | ((type, name, tag)) POINT_CLOUD_REGISTER_POINT_STRUCT_X |
Definition at line 88 of file register_point_struct.h.
Definition at line 91 of file register_point_struct.h.
#define POINT_CLOUD_REGISTER_POINT_WRAPPER | ( | wrapper, | |
pod | |||
) |
BOOST_MPL_ASSERT_MSG(sizeof(wrapper) == sizeof(pod), POINT_WRAPPER_AND_POD_TYPES_HAVE_DIFFERENT_SIZES, (wrapper&, pod&)); \ namespace pcl { \ namespace traits { \ template<> struct POD<wrapper> { typedef pod type; }; \ } \ } \ /***/
Definition at line 75 of file register_point_struct.h.
#define POINT_CLOUD_TAG_OP | ( | s, | |
data, | |||
elem | |||
) | pcl::fields::BOOST_PP_TUPLE_ELEM(3, 2, elem) |
Definition at line 352 of file register_point_struct.h.