Go to the documentation of this file.00001
00002 #ifndef SURFACEPATCH_H_
00003 #define SURFACEPATCH_H_
00004
00005 #include <pcl/point_types.h>
00006 #include <pcl/point_cloud.h>
00007 #include <pcl/io/pcd_io.h>
00008
00009 struct EIGEN_ALIGN16 SurfacePatch
00010 {
00011 PCL_ADD_POINT4D;
00012 PCL_ADD_NORMAL4D;
00013 EIGEN_ALIGN16
00014 union {
00015 float data_s[4];
00016 struct {
00017 float scale_x;
00018 float scale_y;
00019 float scale_z;
00020 };
00021 };
00022 EIGEN_ALIGN16
00023 union {
00024 float data_std[4];
00025 float std_dev_z;
00026 };
00027 EIGEN_MAKE_ALIGNED_OPERATOR_NEW
00028 };
00029 inline std::ostream& operator << (std::ostream& os, const SurfacePatch& p)
00030 {
00031 os << "(" << p.x << "," << p.y << "," << p.z << " - " << p.normal[0] << "," << p.normal[1] << "," << p.normal[2] << " - " << p.scale_x << "," << p.scale_y << "," << p.scale_z << "," << p.std_dev_z << "," << ")";
00032 return (os);
00033 }
00034 POINT_CLOUD_REGISTER_POINT_STRUCT (SurfacePatch,
00035 (float, x, x)
00036 (float, y, y)
00037 (float, z, z)
00038 (float, normal_x, normal_x)
00039 (float, normal_y, normal_y)
00040 (float, normal_z, normal_z)
00041 (float, scale_x, scale_x)
00042 (float, scale_y, scale_y)
00043 (float, scale_z, scale_z)
00044 (float, std_dev_z, std_dev_z))
00045
00046 #endif