39 #ifndef PCL_DATA_TYPES_H_
40 #define PCL_DATA_TYPES_H_
42 #include <pcl/pcl_macros.h>
44 #include <pcl/register_point_struct.h>
45 #include <boost/mpl/contains.hpp>
46 #include <boost/mpl/fold.hpp>
47 #include <boost/mpl/vector.hpp>
58 #pragma warning(disable: 4201)
62 # pragma GCC system_header
141 struct InterestPoint;
161 struct PointXYZRGBNormal;
166 struct PointXYZINormal;
171 struct PointXYZLNormal;
176 struct PointWithRange;
181 struct PointWithViewpoint;
186 struct MomentInvariants;
191 struct PrincipalRadiiRSD;
201 struct PrincipalCurvatures;
216 struct ReferenceFrame;
221 struct ShapeContext1980;
226 struct UniqueShapeContext1960;
246 struct CPPFSignature;
251 struct PPFRGBSignature;
256 struct NormalBasedSignature12;
271 struct GRSDSignature21;
276 struct ESFSignature640;
281 struct GFPFHSignature16;
286 struct BRISKSignature512;
313 struct BorderDescription;
318 struct IntensityGradient;
329 struct PointWithScale;
344 #include <pcl/impl/point_types.hpp>
351 (uint32_t, rgba, rgba)
353 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::RGB,
pcl::_RGB)
356 (
float, intensity, intensity)
358 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::Intensity,
pcl::_Intensity)
361 (uint8_t, intensity, intensity)
363 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::Intensity8u,
pcl::_Intensity8u)
366 (uint32_t, intensity, intensity)
368 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::Intensity32u,
pcl::_Intensity32u)
375 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZ,
pcl::_PointXYZ)
381 (uint32_t, rgba, rgba)
383 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZRGBA,
pcl::_PointXYZRGBA)
391 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZRGB,
pcl::_PointXYZRGB)
397 (uint32_t, rgba, rgba)
398 (uint32_t, label, label)
400 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZRGBL,
pcl::_PointXYZRGBL)
410 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZHSV,
pcl::_PointXYZHSV)
426 (
float, strength, strength)
433 (
float, intensity, intensity)
435 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZI,
pcl::_PointXYZI)
441 (uint32_t, label, label)
445 (uint32_t, label, label)
449 (
float, normal_x, normal_x)
450 (
float, normal_y, normal_y)
451 (
float, normal_z, normal_z)
452 (
float, curvature, curvature)
454 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::Normal,
pcl::_Normal)
457 (
float, normal_x, normal_x)
458 (
float, normal_y, normal_y)
459 (
float, normal_z, normal_z)
461 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::Axis,
pcl::_Axis)
467 (
float, normal_x, normal_x)
468 (
float, normal_y, normal_y)
469 (
float, normal_z, normal_z)
470 (
float, curvature, curvature)
477 (
float, normal_x, normal_x)
478 (
float, normal_y, normal_y)
479 (
float, normal_z, normal_z)
480 (
float, curvature, curvature)
482 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZRGBNormal,
pcl::_PointXYZRGBNormal)
487 (
float, intensity, intensity)
488 (
float, normal_x, normal_x)
489 (
float, normal_y, normal_y)
490 (
float, normal_z, normal_z)
491 (
float, curvature, curvature)
497 (uint32_t, label, label)
498 (
float, normal_x, normal_x)
499 (
float, normal_y, normal_y)
500 (
float, normal_z, normal_z)
501 (
float, curvature, curvature)
507 (
float, range, range)
518 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointWithViewpoint,
pcl::_PointWithViewpoint)
527 (
float, r_min, r_min)
528 (
float, r_max, r_max)
532 (uint8_t, boundary_point, boundary_point)
536 (
float, principal_curvature_x, principal_curvature_x)
537 (
float, principal_curvature_y, principal_curvature_y)
538 (
float, principal_curvature_z, principal_curvature_z)
544 (
float[125], histogram, pfh)
548 (
float[250], histogram, pfhrgb)
556 (
float, alpha_m, alpha_m)
570 (
float, alpha_m, alpha_m)
578 (
float, r_ratio, r_ratio)
579 (
float, g_ratio, g_ratio)
580 (
float, b_ratio, b_ratio)
581 (
float, alpha_m, alpha_m)
585 (
float[12], values, values)
589 (
float[1980], descriptor, shape_context)
594 (
float[1960], descriptor, shape_context)
599 (
float[352], descriptor, shot)
604 (
float[1344], descriptor, shot)
609 (
float[33], histogram, fpfh)
613 (
float, scale, brisk_scale)
614 (
float, orientation, brisk_orientation)
615 (
unsigned char[64], descriptor, brisk_descriptor512)
619 (
float[308], histogram, vfh)
623 (
float[21], histogram, grsd)
627 (
float[640], histogram, esf)
631 (
float[36], descriptor, descriptor)
635 (
float[16], histogram, gfpfh)
639 (
float, gradient_x, gradient_x)
640 (
float, gradient_y, gradient_y)
641 (
float, gradient_z, gradient_z)
648 (
float, scale, scale)
655 (
float, normal_x, normal_x)
656 (
float, normal_y, normal_y)
657 (
float, normal_z, normal_z)
658 (uint32_t, rgba, rgba)
659 (
float, radius, radius)
660 (
float, confidence, confidence)
661 (
float, curvature, curvature)
665 (
float[3], x_axis, x_axis)
666 (
float[3], y_axis, y_axis)
667 (
float[3], z_axis, z_axis)
669 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::ReferenceFrame,
pcl::_ReferenceFrame)
675 (
float, intensity, intensity)
676 (
float, intensity_variance, intensity_variance)
677 (
float, height_variance, height_variance)
679 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointDEM,
pcl::_PointDEM)
685 template<
typename Po
intT>
686 struct FieldMatches<
PointT, fields::rgba>
690 if (field.
name ==
"rgb")
697 return (field.
name == traits::name<PointT, fields::rgba>::value &&
698 field.
datatype == traits::datatype<PointT, fields::rgba>::value &&
699 field.
count == traits::datatype<PointT, fields::rgba>::size);
703 template<
typename Po
intT>
708 if (field.
name ==
"rgba")
715 return (field.
name == traits::name<PointT, fields::rgb>::value &&
716 field.
datatype == traits::datatype<PointT, fields::rgb>::value &&
717 field.
count == traits::datatype<PointT, fields::rgb>::size);
741 template <
typename Po
intT,
typename Field>
742 struct has_field : boost::mpl::contains<typename pcl::traits::fieldList<PointT>::type, Field>::type
746 template <
typename Po
intT,
typename Field>
748 boost::mpl::bool_<true>,
749 boost::mpl::and_<boost::mpl::_1,
750 has_field<PointT, boost::mpl::_2> > >::type
754 template <
typename Po
intT,
typename Field>
756 boost::mpl::bool_<false>,
757 boost::mpl::or_<boost::mpl::_1,
758 has_field<PointT, boost::mpl::_2> > >::type
762 template <
typename Po
intT>
770 template <
typename Po
intT>
772 pcl::fields::normal_y,
773 pcl::fields::normal_z> >
777 template <
typename Po
intT>
782 template <
typename Po
intT>
787 template <
typename Po
intT>
793 template <
typename Po
intT>
802 #pragma warning(default: 4201)
806 #endif //#ifndef PCL_DATA_TYPES_H_
Histogram< 125 > PFHSignature125
BorderTrait
Specification of the fields for BorderDescription::traits.
Metafunction to check if a given point type has normal_x, normal_y, and normal_z 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 intensity field.
Metafunction to check if a given point type has any of the given fields.
Metafunction to check if a given point type has x, y, and z fields.
POINT_CLOUD_REGISTER_POINT_STRUCT(pcl::_PointXYZLAB,(float, x, x)(float, y, y)(float, z, z)(float, L, L)(float, a, a)(float, b, b)) namespace pcl
Histogram< 308 > VFHSignature308
Histogram< 33 > FPFHSignature33
Metafunction to check if a given point type has all given fields.
Histogram< 250 > PFHRGBSignature250
Metafunction to check if a given point type has label field.
A point structure representing the Narf descriptor.
A point structure representing Euclidean xyz coordinates, and the RGB color.
Metafunction to check if a given point type has a given field.
std::bitset< 32 > BorderTraits
Data type to store extended information about a transition from foreground to backgroundSpecification...