register_point_struct.h File Reference

#include "pcl/ros/point_traits.h"
#include <boost/mpl/vector.hpp>
#include <boost/mpl/for_each.hpp>
#include <boost/mpl/assert.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/repetition/repeat_from_to.hpp>
#include <boost/type_traits/is_pod.hpp>
#include <stddef.h>
Include dependency graph for register_point_struct.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Defines

#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)   struct BOOST_PP_TUPLE_ELEM(3, 2, 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)

Define Documentation

#define POINT_CLOUD_EXTRACT_TAGS ( seq   )     BOOST_PP_SEQ_TRANSFORM(POINT_CLOUD_TAG_OP, _, seq)

Definition at line 146 of file register_point_struct.h.

#define POINT_CLOUD_REGISTER_FIELD_DATATYPE ( r,
name,
elem   ) 
Value:
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 134 of file register_point_struct.h.

#define POINT_CLOUD_REGISTER_FIELD_NAME ( r,
point,
elem   ) 
Value:
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 109 of file register_point_struct.h.

#define POINT_CLOUD_REGISTER_FIELD_OFFSET ( r,
name,
elem   ) 
Value:
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 123 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 105 of file register_point_struct.h.

#define POINT_CLOUD_REGISTER_POINT_FIELD_LIST ( name,
seq   ) 
Value:
template<> struct fieldList<name>                             \
  {                                                             \
    typedef boost::mpl::vector<BOOST_PP_SEQ_ENUM(seq)> type;    \
  };                                                            \

Definition at line 148 of file register_point_struct.h.

#define POINT_CLOUD_REGISTER_POINT_STRUCT ( name,
fseq   ) 
Value:
Author:
Patrick Mihelich

Point structure registration methods.

Definition at line 62 of file register_point_struct.h.

#define POINT_CLOUD_REGISTER_POINT_STRUCT_I ( name,
seq   ) 
Value:
namespace pcl                                                                  \
  {                                                                              \
    namespace fields                                                             \
    {                                                                            \
      BOOST_PP_SEQ_FOR_EACH(POINT_CLOUD_REGISTER_FIELD_TAG, name, seq)           \
    }                                                                            \
    namespace traits                                                             \
    {                                                                            \
      BOOST_PP_SEQ_FOR_EACH(POINT_CLOUD_REGISTER_FIELD_NAME, name, seq)          \
      BOOST_PP_SEQ_FOR_EACH(POINT_CLOUD_REGISTER_FIELD_OFFSET, name, seq)        \
      BOOST_PP_SEQ_FOR_EACH(POINT_CLOUD_REGISTER_FIELD_DATATYPE, name, seq)      \
      POINT_CLOUD_REGISTER_POINT_FIELD_LIST(name, POINT_CLOUD_EXTRACT_TAGS(seq)) \
    }                                                                            \
  }                                                                              \

Definition at line 88 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 78 of file register_point_struct.h.

#define POINT_CLOUD_REGISTER_POINT_STRUCT_X0

Definition at line 82 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 80 of file register_point_struct.h.

#define POINT_CLOUD_REGISTER_POINT_STRUCT_Y0

Definition at line 83 of file register_point_struct.h.

#define POINT_CLOUD_REGISTER_POINT_WRAPPER ( wrapper,
pod   ) 
Value:
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 67 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 144 of file register_point_struct.h.

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines


pcl
Author(s): See http://pcl.ros.org/authors for the complete list of authors.
autogenerated on Fri Jan 11 09:56:30 2013