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 PointWithRange;
176 struct PointWithViewpoint;
181 struct MomentInvariants;
186 struct PrincipalRadiiRSD;
196 struct PrincipalCurvatures;
211 struct ReferenceFrame;
216 struct ShapeContext1980;
221 struct PFHSignature125;
226 struct PFHRGBSignature250;
236 struct CPPFSignature;
241 struct PPFRGBSignature;
246 struct NormalBasedSignature12;
251 struct FPFHSignature33;
256 struct VFHSignature308;
261 struct ESFSignature640;
266 struct GFPFHSignature16;
319 #include <pcl/impl/point_types.hpp> 326 (uint32_t, rgba, rgba)
331 (
float, intensity, intensity)
336 (uint8_t, intensity, intensity)
341 (uint32_t, intensity, intensity)
356 (uint32_t, rgba, rgba)
372 (uint32_t, rgba, rgba)
373 (uint32_t, label, label)
401 (
float, strength, strength)
408 (
float, intensity, intensity)
416 (uint32_t, label, label)
420 (uint32_t, label, label)
424 (
float, normal_x, normal_x)
425 (
float, normal_y, normal_y)
426 (
float, normal_z, normal_z)
427 (
float, curvature, curvature)
429 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::
Normal,
pcl::_Normal)
432 (
float, normal_x, normal_x)
433 (
float, normal_y, normal_y)
434 (
float, normal_z, normal_z)
436 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::
Axis,
pcl::_Axis)
442 (
float, normal_x, normal_x)
443 (
float, normal_y, normal_y)
444 (
float, normal_z, normal_z)
445 (
float, curvature, curvature)
452 (
float, normal_x, normal_x)
453 (
float, normal_y, normal_y)
454 (
float, normal_z, normal_z)
455 (
float, curvature, curvature)
462 (
float, intensity, intensity)
463 (
float, normal_x, normal_x)
464 (
float, normal_y, normal_y)
465 (
float, normal_z, normal_z)
466 (
float, curvature, curvature)
472 (
float, range, range)
492 (
float, r_min, r_min)
493 (
float, r_max, r_max)
497 (uint8_t, boundary_point, boundary_point)
501 (
float, principal_curvature_x, principal_curvature_x)
502 (
float, principal_curvature_y, principal_curvature_y)
503 (
float, principal_curvature_z, principal_curvature_z)
509 (
float[125], histogram, pfh)
513 (
float[250], histogram, pfhrgb)
521 (
float, alpha_m, alpha_m)
535 (
float, alpha_m, alpha_m)
543 (
float, r_ratio, r_ratio)
544 (
float, g_ratio, g_ratio)
545 (
float, b_ratio, b_ratio)
546 (
float, alpha_m, alpha_m)
550 (
float[12], values, values)
554 (
float[1980], descriptor, shape_context)
559 (
float[352], descriptor, shot)
564 (
float[1344], descriptor, shot)
569 (
float[33], histogram, fpfh)
573 (
float[308], histogram, vfh)
577 (
float[640], histogram, esf)
581 (
float[36], descriptor, descriptor)
585 (
float[16], histogram, gfpfh)
589 (
float, gradient_x, gradient_x)
590 (
float, gradient_y, gradient_y)
591 (
float, gradient_z, gradient_z)
598 (
float, scale, scale)
605 (
float, normal_x, normal_x)
606 (
float, normal_y, normal_y)
607 (
float, normal_z, normal_z)
608 (uint32_t, rgba, rgba)
609 (
float, radius, radius)
610 (
float, confidence, confidence)
611 (
float, curvature, curvature)
615 (
float[3], x_axis, x_axis)
616 (
float[3], y_axis, y_axis)
617 (
float[3], z_axis, z_axis)
625 template<
typename Po
intT>
630 if (field.
name ==
"rgb")
643 template<
typename Po
intT>
648 if (field.
name ==
"rgba")
681 template <
typename Po
intT,
typename Field>
682 struct has_field : boost::mpl::contains<typename pcl::traits::fieldList<PointT>::type, Field>::type
686 template <
typename Po
intT,
typename Field>
687 struct has_all_fields : boost::mpl::fold<Field,
688 boost::mpl::bool_<true>,
689 boost::mpl::and_<boost::mpl::_1,
690 has_field<PointT, boost::mpl::_2> > >::type
694 template <
typename Po
intT,
typename Field>
695 struct has_any_field : boost::mpl::fold<Field,
696 boost::mpl::bool_<false>,
697 boost::mpl::or_<boost::mpl::_1,
698 has_field<PointT, boost::mpl::_2> > >::type
702 template <
typename Po
intT>
703 struct has_xyz : has_all_fields<PointT, boost::mpl::vector<pcl::fields::x,
710 template <
typename Po
intT>
711 struct has_normal : has_all_fields<PointT, boost::mpl::vector<pcl::fields::normal_x,
712 pcl::fields::normal_y,
713 pcl::fields::normal_z> >
717 template <
typename Po
intT>
718 struct has_curvature : has_field<PointT, pcl::fields::curvature>
722 template <
typename Po
intT>
723 struct has_intensity : has_field<PointT, pcl::fields::intensity>
727 template <
typename Po
intT>
728 struct has_color : has_any_field<PointT, boost::mpl::vector<pcl::fields::rgb,
733 template <
typename Po
intT>
734 struct has_label : has_field<PointT, pcl::fields::label>
742 #pragma warning(default: 4201) 746 #endif //#ifndef PCL_DATA_TYPES_H_ A point structure representing normal coordinates and the surface curvature estimate.
A point structure representing the grayscale intensity in single-channel images.
A point structure representing a Shape Context.
A point structure representing a description of whether a point is lying on a surface boundary or not...
A point structure representing Euclidean xyz coordinates, padded with an extra range float...
A point structure representing the Normal Based Signature for a feature matrix of 4-by-3...
BorderTrait
Specification of the fields for BorderDescription::traits.
A structure representing the Local Reference Frame of a point.
A point structure representing an Axis using its normal coordinates.
A point structure representing Euclidean xyz coordinates, and the RGBA color.
A point structure representing the grayscale intensity in single-channel images.
A point structure representing the Fast Point Feature Histogram (FPFH).
A 2D point structure representing Euclidean xy coordinates.
A structure representing RGB color information.
A point structure representing an N-D histogram.
A 2D point structure representing pixel image coordinates.
A point structure representing the GFPFH descriptor with 16 bins.
A point structure representing the Point Feature Histogram with colors (PFHRGB).
A point structure representing Euclidean xyz coordinates, and the intensity value.
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
A point structure representing Euclidean xyz coordinates.
A point structure representing Euclidean xyz coordinates, intensity, together with normal coordinates...
A point structure representing an interest point with Euclidean xyz coordinates, and an interest valu...
A point structure representing the three moment invariants.
A point structure representing the grayscale intensity in single-channel images.
A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape onl...
A structure to store if a point in a range image lies on a border between an obstacle and the backgro...
A point structure representing Euclidean xyz coordinates, together with normal coordinates and the su...
A point structure for storing the Point Pair Feature (CPPF) values.
A point structure representing Euclidean xyz coordinates together with the viewpoint from which it wa...
A point structure representing the intensity gradient of an XYZI point cloud.
bool operator()(const pcl::PCLPointField &field)
A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape+col...
A point structure representing the Viewpoint Feature Histogram (VFH).
A point structure representing a 3-D position and scale.
A point structure representing the minimum and maximum surface radii (in meters) computed using RSD...
A point structure representing the Narf descriptor.
A point structure representing Euclidean xyz coordinates, and the RGB color.
A point structure representing the principal curvatures and their magnitudes.
A point structure representing the Point Feature Histogram (PFH).
A point structure representing the Ensemble of Shape Functions (ESF).
A surfel, that is, a point structure representing Euclidean xyz coordinates, together with normal coo...
std::bitset< 32 > BorderTraits
Data type to store extended information about a transition from foreground to backgroundSpecification...
A point structure representing Euclidean xyz coordinates, and the RGB color, together with normal coo...
A point structure for storing the Point Pair Feature (PPF) values.
A point structure for storing the Point Pair Color Feature (PPFRGB) values.