00001
00002
00003
00004
00005
00006
00007
00008 #ifndef HEMAS_POINT_TYPES_H
00009 #define HEMAS_POINT_TYPES_H
00010 #include <pcl/point_types.h>
00011 namespace hema {
00012
00013 struct PointXYGRGBCam {
00014 PCL_ADD_POINT4D;
00015 float rgb;
00016 PCL_ADD_NORMAL4D;
00017 uint32_t cameraIndex;
00018 float distance;
00019 float curvature;
00020
00021 };
00022
00023 struct PointPLY {
00024 PCL_ADD_POINT4D;
00025 uint32_t r;
00026 uint32_t g;
00027 uint32_t b;
00028
00029 };
00030
00031 struct PointXYInt {
00032 int x;
00033 int y;
00034 int z;
00035 int segment;
00036 int label;
00037 };
00038
00039 struct PointXYZRGBCamSL {
00040 PCL_ADD_POINT4D;
00041
00042 union {
00043
00044 struct {
00045 float rgb;
00046 };
00047 float data_c[4];
00048 };
00049 uint32_t cameraIndex;
00050 float distance;
00051 uint32_t segment;
00052 uint32_t label;
00053
00054
00055
00056 void clone(const struct pcl::PointXYZRGB & rhs) {
00057 for (int i = 0; i < 4; i++)
00058 data[i] = rhs.data[i];
00059 rgb = rhs.rgb;
00060 segment = 0;
00061 label = 0;
00062 cameraIndex = 0;
00063 distance = 0.0;
00064
00065 }
00066 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
00067 } EIGEN_ALIGN16;
00068 }
00069
00070 POINT_CLOUD_REGISTER_POINT_STRUCT(
00071 hema::PointXYGRGBCam,
00072 (float, x, x)
00073 (float, y, y)
00074 (float, z, z)
00075 (float, rgb, rgb)
00076 (uint32_t, cameraIndex, cameraIndex)
00077 (float, distance, distance)
00078 )
00079
00080 POINT_CLOUD_REGISTER_POINT_STRUCT(
00081 hema::PointXYInt,
00082 (int, x, x)
00083 (int, y, y)
00084 (int, z, z)
00085 (int, segment, segment)
00086 (int, label, label)
00087 )
00088
00089 POINT_CLOUD_REGISTER_POINT_STRUCT(
00090 hema::PointPLY,
00091 (float, x, x)
00092 (float, y, y)
00093 (float, z, z)
00094 (int, r, r)
00095 (int, g, g)
00096 (int, b, b)
00097 )
00098
00099
00100 POINT_CLOUD_REGISTER_POINT_STRUCT(
00101 hema::PointXYZRGBCamSL,
00102 (float, x, x)
00103 (float, y, y)
00104 (float, z, z)
00105 (float, rgb, rgb)
00106 (uint32_t, cameraIndex, cameraIndex)
00107 (float, distance, distance)
00108 (uint32_t, segment, segment)
00109 (uint32_t, label, label)
00110 )
00111
00112
00113
00114 #endif
00115