41 #include <pcl/memory.h>
42 #include <pcl/pcl_macros.h>
43 #include <pcl/PCLPointField.h>
44 #include <pcl/point_types.h>
45 #include <pcl/register_point_struct.h>
47 #include <boost/mpl/and.hpp>
48 #include <boost/mpl/bool.hpp>
49 #include <boost/mpl/contains.hpp>
50 #include <boost/mpl/fold.hpp>
51 #include <boost/mpl/or.hpp>
52 #include <boost/mpl/placeholders.hpp>
53 #include <boost/mpl/vector.hpp>
60 #include <type_traits>
63 #define PCL_POINT_TYPES \
74 (pcl::InterestPoint) \
78 (pcl::PointXYZRGBNormal) \
79 (pcl::PointXYZINormal) \
80 (pcl::PointXYZLNormal) \
81 (pcl::PointWithRange) \
82 (pcl::PointWithViewpoint) \
83 (pcl::MomentInvariants) \
84 (pcl::PrincipalRadiiRSD) \
86 (pcl::PrincipalCurvatures) \
87 (pcl::PFHSignature125) \
88 (pcl::PFHRGBSignature250) \
90 (pcl::CPPFSignature) \
91 (pcl::PPFRGBSignature) \
92 (pcl::NormalBasedSignature12) \
93 (pcl::FPFHSignature33) \
94 (pcl::VFHSignature308) \
95 (pcl::GASDSignature512) \
96 (pcl::GASDSignature984) \
97 (pcl::GASDSignature7992) \
98 (pcl::GRSDSignature21) \
99 (pcl::ESFSignature640) \
100 (pcl::BRISKSignature512) \
102 (pcl::IntensityGradient) \
103 (pcl::PointWithScale) \
105 (pcl::ShapeContext1980) \
106 (pcl::UniqueShapeContext1960) \
110 (pcl::ReferenceFrame) \
114 #define PCL_RGB_POINT_TYPES \
115 (pcl::PointXYZRGBA) \
117 (pcl::PointXYZRGBL) \
118 (pcl::PointXYZRGBNormal) \
122 #define PCL_XYZ_POINT_TYPES \
126 (pcl::PointXYZRGBA) \
128 (pcl::PointXYZRGBL) \
131 (pcl::InterestPoint) \
133 (pcl::PointXYZRGBNormal) \
134 (pcl::PointXYZINormal) \
135 (pcl::PointXYZLNormal) \
136 (pcl::PointWithRange) \
137 (pcl::PointWithViewpoint) \
138 (pcl::PointWithScale) \
143 #define PCL_XYZL_POINT_TYPES \
145 (pcl::PointXYZRGBL) \
146 (pcl::PointXYZLNormal)
149 #define PCL_NORMAL_POINT_TYPES \
152 (pcl::PointXYZRGBNormal) \
153 (pcl::PointXYZINormal) \
154 (pcl::PointXYZLNormal) \
158 #define PCL_FEATURE_POINT_TYPES \
159 (pcl::PFHSignature125) \
160 (pcl::PFHRGBSignature250) \
161 (pcl::PPFSignature) \
162 (pcl::CPPFSignature) \
163 (pcl::PPFRGBSignature) \
164 (pcl::NormalBasedSignature12) \
165 (pcl::FPFHSignature33) \
166 (pcl::VFHSignature308) \
167 (pcl::GASDSignature512) \
168 (pcl::GASDSignature984) \
169 (pcl::GASDSignature7992) \
170 (pcl::GRSDSignature21) \
171 (pcl::ESFSignature640) \
172 (pcl::BRISKSignature512) \
176 #define PCL_DESCRIPTOR_FEATURE_POINT_TYPES \
177 (pcl::PFHSignature125) \
178 (pcl::PFHRGBSignature250) \
179 (pcl::FPFHSignature33) \
180 (pcl::VFHSignature308) \
181 (pcl::GASDSignature512) \
182 (pcl::GASDSignature984) \
183 (pcl::GASDSignature7992) \
184 (pcl::GRSDSignature21) \
185 (pcl::ESFSignature640) \
186 (pcl::BRISKSignature512) \
217 template<
typename FeaturePo
intT>
226 using Array4fMap = Eigen::Map<Eigen::Array4f, Eigen::Aligned>;
233 using Vector3c = Eigen::Matrix<std::uint8_t, 3, 1>;
236 using Vector4c = Eigen::Matrix<std::uint8_t, 4, 1>;
240 #define PCL_ADD_UNION_POINT4D \
241 union EIGEN_ALIGN16 { \
250 #define PCL_ADD_EIGEN_MAPS_POINT4D \
251 inline pcl::Vector2fMap getVector2fMap () { return (pcl::Vector2fMap (data)); } \
252 inline pcl::Vector2fMapConst getVector2fMap () const { return (pcl::Vector2fMapConst (data)); } \
253 inline pcl::Vector3fMap getVector3fMap () { return (pcl::Vector3fMap (data)); } \
254 inline pcl::Vector3fMapConst getVector3fMap () const { return (pcl::Vector3fMapConst (data)); } \
255 inline pcl::Vector4fMap getVector4fMap () { return (pcl::Vector4fMap (data)); } \
256 inline pcl::Vector4fMapConst getVector4fMap () const { return (pcl::Vector4fMapConst (data)); } \
257 inline pcl::Array3fMap getArray3fMap () { return (pcl::Array3fMap (data)); } \
258 inline pcl::Array3fMapConst getArray3fMap () const { return (pcl::Array3fMapConst (data)); } \
259 inline pcl::Array4fMap getArray4fMap () { return (pcl::Array4fMap (data)); } \
260 inline pcl::Array4fMapConst getArray4fMap () const { return (pcl::Array4fMapConst (data)); }
262 #define PCL_ADD_POINT4D \
263 PCL_ADD_UNION_POINT4D \
264 PCL_ADD_EIGEN_MAPS_POINT4D
266 #define PCL_ADD_UNION_NORMAL4D \
267 union EIGEN_ALIGN16 { \
277 #define PCL_ADD_EIGEN_MAPS_NORMAL4D \
278 inline pcl::Vector3fMap getNormalVector3fMap () { return (pcl::Vector3fMap (data_n)); } \
279 inline pcl::Vector3fMapConst getNormalVector3fMap () const { return (pcl::Vector3fMapConst (data_n)); } \
280 inline pcl::Vector4fMap getNormalVector4fMap () { return (pcl::Vector4fMap (data_n)); } \
281 inline pcl::Vector4fMapConst getNormalVector4fMap () const { return (pcl::Vector4fMapConst (data_n)); }
283 #define PCL_ADD_NORMAL4D \
284 PCL_ADD_UNION_NORMAL4D \
285 PCL_ADD_EIGEN_MAPS_NORMAL4D
287 #define PCL_ADD_UNION_RGB \
301 std::uint32_t rgba; \
304 #define PCL_ADD_EIGEN_MAPS_RGB \
305 inline Eigen::Vector3i getRGBVector3i () { return (Eigen::Vector3i (r, g, b)); } \
306 inline const Eigen::Vector3i getRGBVector3i () const { return (Eigen::Vector3i (r, g, b)); } \
307 inline Eigen::Vector4i getRGBVector4i () { return (Eigen::Vector4i (r, g, b, a)); } \
308 inline const Eigen::Vector4i getRGBVector4i () const { return (Eigen::Vector4i (r, g, b, a)); } \
309 inline Eigen::Vector4i getRGBAVector4i () { return (Eigen::Vector4i (r, g, b, a)); } \
310 inline const Eigen::Vector4i getRGBAVector4i () const { return (Eigen::Vector4i (r, g, b, a)); } \
311 inline pcl::Vector3cMap getBGRVector3cMap () { return (pcl::Vector3cMap (reinterpret_cast<std::uint8_t*> (&rgba))); } \
312 inline pcl::Vector3cMapConst getBGRVector3cMap () const { return (pcl::Vector3cMapConst (reinterpret_cast<const std::uint8_t*> (&rgba))); } \
313 inline pcl::Vector4cMap getBGRAVector4cMap () { return (pcl::Vector4cMap (reinterpret_cast<std::uint8_t*> (&rgba))); } \
314 inline pcl::Vector4cMapConst getBGRAVector4cMap () const { return (pcl::Vector4cMapConst (reinterpret_cast<const std::uint8_t*> (&rgba))); }
316 #define PCL_ADD_RGB \
318 PCL_ADD_EIGEN_MAPS_RGB
320 #define PCL_ADD_INTENSITY \
326 #define PCL_ADD_INTENSITY_8U \
329 std::uint8_t intensity; \
332 #define PCL_ADD_INTENSITY_32U \
335 std::uint32_t intensity; \
354 inline constexpr
PointXYZ (): PointXYZ(0.f, 0.f, 0.f) {}
358 friend std::ostream&
operator << (std::ostream& os,
const PointXYZ& p);
371 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const RGB& p);
393 inline constexpr
RGB (
const _RGB &p) : RGB{p.r, p.g, p.b, p.a} {}
395 inline constexpr
RGB (): RGB(0, 0, 0) {}
397 inline constexpr
RGB (std::uint8_t _r, std::uint8_t _g, std::uint8_t _b, std::uint8_t _a = 255) :
_RGB{{{{_b, _g, _r, _a}}}} {}
399 friend std::ostream&
operator << (std::ostream& os,
const RGB& p);
438 #if defined(_LIBCPP_VERSION) && _LIBCPP_VERSION <= 1101
439 inline constexpr
operator unsigned char()
const
484 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointXYZI& p);
489 inline constexpr
PointXYZI (
float _intensity = 0.f) : PointXYZI(0.f, 0.f, 0.f, _intensity) {}
491 inline constexpr
PointXYZI (
float _x,
float _y,
float _z,
float _intensity = 0.f) :
_PointXYZI{{{_x, _y, _z, 1.0f}}, {{_intensity}}} {}
509 inline constexpr
PointXYZL (std::uint32_t _label = 0) : PointXYZL(0.f, 0.f, 0.f, _label) {}
511 inline constexpr
PointXYZL (
float _x,
float _y,
float _z, std::uint32_t _label = 0) :
_PointXYZL{{{_x, _y, _z, 1.0f}}, _label} {}
517 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const Label& p);
522 inline constexpr
Label (std::uint32_t _label = 0): label(_label) {}
562 inline constexpr
PointXYZRGBA (std::uint8_t _r, std::uint8_t _g, std::uint8_t _b, std::uint8_t _a):
563 PointXYZRGBA (0.f, 0.f, 0.f, _r, _g, _b, _a) {}
566 PointXYZRGBA (_x, _y, _z, 0, 0, 0, 255) {}
568 inline constexpr
PointXYZRGBA (
float _x,
float _y,
float _z, std::uint8_t _r,
569 std::uint8_t _g, std::uint8_t _b, std::uint8_t _a) :
_PointXYZRGBA{{{_x, _y, _z, 1.0f}}, {{{_b, _g, _r, _a}}}} {}
571 friend std::ostream&
operator << (std::ostream& os,
const PointXYZRGBA& p);
628 inline constexpr
PointXYZRGB (std::uint8_t _r, std::uint8_t _g, std::uint8_t _b):
629 PointXYZRGB (0.f, 0.f, 0.f, _r, _g, _b) {}
632 PointXYZRGB (_x, _y, _z, 0, 0, 0) {}
635 std::uint8_t _r, std::uint8_t _g, std::uint8_t _b):
636 _PointXYZRGB{{{_x, _y, _z, 1.0f}}, {{{_b, _g, _r, 255}}}} {}
638 friend std::ostream&
operator << (std::ostream& os,
const PointXYZRGB& p);
643 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointXYZRGBL& p);
649 PointXYZRGBL (0.f, 0.f, 0.f, 0, 0, 0, _label) {}
651 inline constexpr
PointXYZRGBL (std::uint8_t _r, std::uint8_t _g, std::uint8_t _b):
652 PointXYZRGBL (0.f, 0.f, 0.f, _r, _g, _b) {}
655 PointXYZRGBL (_x, _y, _z, 0, 0, 0) {}
658 std::uint8_t _r, std::uint8_t _g, std::uint8_t _b,
659 std::uint32_t _label = 0, std::uint8_t _a = 255) :
660 _PointXYZRGBL{{{_x, _y, _z, 1.0f}}, {{{_b, _g, _r, _a}}}, _label} {}
662 friend std::ostream&
operator << (std::ostream& os,
const PointXYZRGBL& p);
683 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointXYZLAB& p);
691 inline constexpr
PointXYZLAB() : PointXYZLAB{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f} {}
694 float _l,
float _a,
float _b) :
718 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointXYZHSV& p);
722 PointXYZHSV{p.x, p.y, p.z, p.
h, p.
s, p.
v} {}
729 PointXYZHSV (0.f, 0.f, 0.f, _h, _s, _v) {}
732 float _h,
float _s,
float _v) :
735 friend std::ostream&
operator << (std::ostream& os,
const PointXYZHSV& p);
739 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointXY& p);
756 inline constexpr
PointXY(
float _x,
float _y):
x(_x),
y(_y) {}
766 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointUV& p);
776 inline constexpr
PointUV() =
default;
778 inline constexpr
PointUV(
float _u,
float _v): u(_u), v(_v) {}
783 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const InterestPoint& p);
818 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const Normal& p);
826 inline constexpr
Normal (
float _curvature = 0.f): Normal (0.f, 0.f, 0.f, _curvature) {}
828 inline constexpr
Normal (
float n_x,
float n_y,
float n_z,
float _curvature = 0.f) :
829 _Normal{{{n_x, n_y, n_z, 0.0f}}, {{_curvature}}} {}
842 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const Axis& p);
848 inline constexpr
Axis (
const _Axis &p) : Axis{p.normal_x, p.normal_y, p.normal_z} {}
850 inline constexpr
Axis (): Axis (0.f, 0.f, 0.f) {}
852 inline constexpr
Axis (
float n_x,
float n_y,
float n_z) :
_Axis{{{n_x, n_y, n_z, 0.0f}}} {}
854 friend std::ostream&
operator << (std::ostream& os,
const Axis& p);
874 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointNormal& p);
882 inline constexpr
PointNormal (
float _curvature = 0.f): PointNormal (0.f, 0.f, 0.f, 0.f, 0.f, 0.f, _curvature) {}
885 PointNormal (_x, _y, _z, 0.f, 0.f, 0.f, 0.f) {}
887 inline constexpr
PointNormal (
float _x,
float _y,
float _z,
float n_x,
float n_y,
float n_z,
float _curvature = 0.f) :
888 _PointNormal{{{_x, _y, _z, 1.0f}}, {{n_x, n_y, n_z, 0.0f}}, {{_curvature}}} {}
907 PCL_ADD_EIGEN_MAPS_RGB
911 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointXYZRGBNormal& p);
944 PointXYZRGBNormal {p.x, p.y, p.z, p.r, p.g, p.b, p.a, p.normal_x, p.normal_y, p.normal_z, p.
curvature} {}
947 PointXYZRGBNormal (0.f, 0.f, 0.f, 0, 0, 0, 0.f, 0.f, 0.f, _curvature) {}
950 PointXYZRGBNormal (_x, _y, _z, 0, 0, 0) {}
953 PointXYZRGBNormal (0.f, 0.f, 0.f, _r, _g, _b) {}
955 inline constexpr
PointXYZRGBNormal (
float _x,
float _y,
float _z, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b):
956 PointXYZRGBNormal (_x, _y, _z, _r, _g, _b, 0.f, 0.f, 0.f) {}
958 inline constexpr
PointXYZRGBNormal (
float _x,
float _y,
float _z, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b,
959 float n_x,
float n_y,
float n_z,
float _curvature = 0.f) :
961 {{_x, _y, _z, 1.0f}},
962 {{n_x, n_y, n_z, 0.0f}},
963 {{ {{{_b, _g, _r, 255u}}}, _curvature }}
967 inline constexpr
PointXYZRGBNormal (
float _x,
float _y,
float _z, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b,
968 std::uint8_t _a,
float n_x,
float n_y,
float n_z,
float _curvature = 0.f) :
970 {{_x, _y, _z, 1.0f}},
971 {{n_x, n_y, n_z, 0.0f}},
972 {{ {{{_b, _g, _r, _a}}}, _curvature }}
996 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointXYZINormal& p);
1003 PointXYZINormal {p.x, p.y, p.z, p.
intensity, p.normal_x, p.normal_y, p.normal_z, p.
curvature} {}
1005 inline constexpr
PointXYZINormal (
float _intensity = 0.f): PointXYZINormal (0.f, 0.f, 0.f, _intensity) {}
1008 PointXYZINormal (_x, _y, _z, _intensity, 0.f, 0.f, 0.f) {}
1011 float n_x,
float n_y,
float n_z,
float _curvature = 0.f) :
1013 {{_x, _y, _z, 1.0f}},
1014 {{n_x, n_y, n_z, 0.0f}},
1015 {{_intensity, _curvature}}
1039 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointXYZLNormal& p);
1046 PointXYZLNormal {p.x, p.y, p.z, p.
label, p.normal_x, p.normal_y, p.normal_z, p.
curvature} {}
1048 inline constexpr
PointXYZLNormal (std::uint32_t _label = 0u): PointXYZLNormal (0.f, 0.f, 0.f, _label) {}
1050 inline constexpr
PointXYZLNormal (
float _x,
float _y,
float _z, std::uint32_t _label = 0u) :
1051 PointXYZLNormal (_x, _y, _z, _label, 0.f, 0.f, 0.f) {}
1054 float n_x,
float n_y,
float n_z,
float _curvature = 0.f) :
1056 {{_x, _y, _z, 1.0f}},
1057 {{n_x, n_y, n_z, 0.0f}},
1058 {{_label, _curvature}}
1082 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointWithRange& p);
1090 inline constexpr
PointWithRange (
float _range = 0.f): PointWithRange (0.f, 0.f, 0.f, _range) {}
1115 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointWithViewpoint& p);
1125 inline constexpr
PointWithViewpoint (
float _x,
float _y,
float _z): PointWithViewpoint (_x, _y, _z, 0.f, 0.f, 0.f) {}
1127 inline constexpr
PointWithViewpoint (
float _x,
float _y,
float _z,
float _vp_x,
float _vp_y,
float _vp_z) :
1130 friend std::ostream&
operator << (std::ostream& os,
const PointWithViewpoint& p);
1133 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const MomentInvariants& p);
1148 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PrincipalRadiiRSD& p);
1163 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const Boundary& p);
1171 #if defined(_LIBCPP_VERSION) && _LIBCPP_VERSION <= 1101
1172 constexpr
operator unsigned char()
const
1178 inline constexpr
Boundary (std::uint8_t _boundary = 0): boundary_point (_boundary) {}
1183 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PrincipalCurvatures& p);
1204 inline constexpr
PrincipalCurvatures (
float _pc1,
float _pc2): PrincipalCurvatures (0.f, 0.f, 0.f, _pc1, _pc2) {}
1206 inline constexpr
PrincipalCurvatures (
float _x,
float _y,
float _z): PrincipalCurvatures (_x, _y, _z, 0.f, 0.f) {}
1214 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PFHSignature125& p);
1221 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<PFHSignature125>; }
1229 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PFHRGBSignature250& p);
1236 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<PFHRGBSignature250>; }
1243 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PPFSignature& p);
1252 inline constexpr
PPFSignature (
float _alpha = 0.f): PPFSignature (0.f, 0.f, 0.f, 0.f, _alpha) {}
1254 inline constexpr
PPFSignature (
float _f1,
float _f2,
float _f3,
float _f4,
float _alpha = 0.f):
1255 f1 (_f1),
f2 (_f2),
f3 (_f3),
f4 (_f4), alpha_m (_alpha) {}
1260 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const CPPFSignature& p);
1270 CPPFSignature (0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, _alpha) {}
1272 inline constexpr
CPPFSignature (
float _f1,
float _f2,
float _f3,
float _f4,
float _f5,
float _f6,
1273 float _f7,
float _f8,
float _f9,
float _f10,
float _alpha = 0.f):
1274 f1 (_f1), f2 (_f2), f3 (_f3), f4 (_f4), f5 (_f5), f6 (_f6),
1275 f7 (_f7), f8 (_f8), f9 (_f9), f10 (_f10), alpha_m (_alpha) {}
1280 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PPFRGBSignature& p);
1290 inline constexpr
PPFRGBSignature (
float _alpha = 0.f): PPFRGBSignature (0.f, 0.f, 0.f, 0.f, _alpha) {}
1292 inline constexpr
PPFRGBSignature (
float _f1,
float _f2,
float _f3,
float _f4,
float _alpha = 0.f):
1293 PPFRGBSignature (_f1, _f2, _f3, _f4, _alpha, 0.f, 0.f, 0.f) {}
1295 inline constexpr
PPFRGBSignature (
float _f1,
float _f2,
float _f3,
float _f4,
float _alpha,
float _r,
float _g,
float _b):
1296 f1 (_f1),
f2 (_f2),
f3 (_f3),
f4 (_f4), r_ratio (_r),
g_ratio (_g),
b_ratio (_b), alpha_m (_alpha) {}
1301 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const NormalBasedSignature12& p);
1315 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const ShapeContext1980& p);
1323 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<ShapeContext1980>; }
1330 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const UniqueShapeContext1960& p);
1338 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<UniqueShapeContext1960>; }
1345 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const SHOT352& p);
1353 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<SHOT352>; }
1355 inline constexpr
SHOT352 () =
default;
1361 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const SHOT1344& p);
1369 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<SHOT1344>; }
1371 inline constexpr
SHOT1344 () =
default;
1394 inline const Eigen::Map<const Eigen::Vector3f>
getXAxisVector3fMap ()
const {
return (Eigen::Vector3f::Map (x_axis)); }
1396 inline const Eigen::Map<const Eigen::Vector3f>
getYAxisVector3fMap ()
const {
return (Eigen::Vector3f::Map (y_axis)); }
1398 inline const Eigen::Map<const Eigen::Vector3f>
getZAxisVector3fMap ()
const {
return (Eigen::Vector3f::Map (z_axis)); }
1399 inline Eigen::Map<Eigen::Matrix3f>
getMatrix3fMap () {
return (Eigen::Matrix3f::Map (rf)); }
1400 inline const Eigen::Map<const Eigen::Matrix3f>
getMatrix3fMap ()
const {
return (Eigen::Matrix3f::Map (rf)); }
1405 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const ReferenceFrame& p);
1409 ReferenceFrame{p.
rf}
1424 _ReferenceFrame{ {{_rf[0], _rf[1], _rf[2], _rf[3], _rf[4], _rf[5], _rf[6], _rf[7], _rf[8]}} } {}
1426 friend std::ostream&
operator << (std::ostream& os,
const ReferenceFrame& p);
1431 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const FPFHSignature33& p);
1438 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<FPFHSignature33>; }
1445 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const VFHSignature308& p);
1452 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<VFHSignature308>; }
1459 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const GRSDSignature21& p);
1466 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<GRSDSignature21>; }
1473 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const BRISKSignature512& p);
1482 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<BRISKSignature512>; }
1486 inline constexpr
BRISKSignature512 (
float _scale,
float _orientation): scale (_scale), orientation (_orientation) {}
1491 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const ESFSignature640& p);
1498 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<ESFSignature640>; }
1505 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const GASDSignature512& p);
1512 static constexpr
int descriptorSize() {
return detail::traits::descriptorSize_v<GASDSignature512>; }
1519 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const GASDSignature984& p);
1526 static constexpr
int descriptorSize() {
return detail::traits::descriptorSize_v<GASDSignature984>; }
1533 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const GASDSignature7992& p);
1540 static constexpr
int descriptorSize() {
return detail::traits::descriptorSize_v<GASDSignature7992>; }
1547 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const GFPFHSignature16& p);
1554 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<GFPFHSignature16>; }
1561 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const Narf36& p);
1569 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<Narf36>; }
1571 inline constexpr
Narf36 () =
default;
1573 inline constexpr
Narf36 (
float _x,
float _y,
float _z): Narf36 (_x, _y, _z, 0.f, 0.f, 0.f) {}
1575 inline constexpr
Narf36 (
float _x,
float _y,
float _z,
float _roll,
float _pitch,
float _yaw):
1576 x (_x),
y (_y),
z (_z),
roll (_roll),
pitch (_pitch),
yaw (_yaw) {}
1581 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const BorderDescription& p);
1599 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const IntensityGradient& p);
1630 static constexpr
int descriptorSize () {
return detail::traits::descriptorSize_v<Histogram<N>>; }
1666 float _angle = -1.f,
float _response = 0.f,
int _octave = 0) :
1667 _PointWithScale{{{_x, _y, _z, 1.0f}}, {_scale}, _angle, _response, _octave } {}
1688 PCL_ADD_EIGEN_MAPS_RGB
1692 PCL_EXPORTS std::ostream&
operator << (std::ostream& os,
const PointSurfel& p);
1699 PointSurfel{p.x, p.y, p.z, p.normal_x, p.normal_y, p.normal_z, p.r, p.g, p.b, p.a, p.
radius, p.
confidence, p.
curvature} {}
1702 PointSurfel{0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0u, 0u, 0u, 0u, 0.0f, 0.0f, 0.0f} {}
1704 inline constexpr
PointSurfel (
float _x,
float _y,
float _z,
float _nx,
1705 float _ny,
float _nz, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b, std::uint8_t _a,
1706 float _radius,
float _confidence,
float _curvature) :
1708 {{_x, _y, _z, 1.0f}},
1709 {{_nx, _ny, _nz, 0.0f}},
1710 {{{{{_b, _g, _r, _a}}}, _radius, _confidence, _curvature}}
1735 inline constexpr
PointDEM (): PointDEM (0.f, 0.f, 0.f) {}
1737 inline constexpr
PointDEM (
float _x,
float _y,
float _z): PointDEM (_x, _y, _z, 0.f, 0.f, 0.f) {}
1739 inline constexpr
PointDEM (
float _x,
float _y,
float _z,
float _intensity,
1740 float _intensity_variance,
float _height_variance) :
1741 _PointDEM{{{_x, _y, _z, 1.0f}}, _intensity, _intensity_variance, _height_variance} {}
1746 template <
int N> std::ostream&
1747 operator << (std::ostream& os, const Histogram<N>& p)
1750 PCL_IF_CONSTEXPR(N > 0)
1752 os <<
"(" << p.histogram[0];
1753 std::for_each(p.histogram + 1, std::end(p.histogram),
1754 [&os](
const auto& hist) { os <<
", " << hist; });
1762 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_RGB,
1763 (std::uint32_t, rgba, rgba)
1765 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::RGB,
pcl::_RGB)
1767 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_Intensity,
1768 (
float, intensity, intensity)
1770 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::Intensity,
pcl::_Intensity)
1772 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_Intensity8u,
1773 (std::uint8_t, intensity, intensity)
1775 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::Intensity8u,
pcl::_Intensity8u)
1777 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_Intensity32u,
1778 (std::uint32_t, intensity, intensity)
1780 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::Intensity32u,
pcl::_Intensity32u)
1782 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_PointXYZ,
1787 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZ,
pcl::_PointXYZ)
1789 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_PointXYZRGBA,
1793 (std::uint32_t, rgba, rgba)
1795 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZRGBA,
pcl::_PointXYZRGBA)
1797 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_PointXYZRGB,
1803 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZRGB,
pcl::_PointXYZRGB)
1805 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_PointXYZRGBL,
1809 (std::uint32_t, rgba, rgba)
1810 (std::uint32_t, label, label)
1812 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZRGBL,
pcl::_PointXYZRGBL)
1814 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_PointXYZLAB,
1822 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZLAB,
pcl::_PointXYZLAB)
1824 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_PointXYZHSV,
1832 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZHSV,
pcl::_PointXYZHSV)
1834 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PointXY,
1839 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PointUV,
1844 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::InterestPoint,
1848 (
float, strength, strength)
1851 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_PointXYZI,
1855 (
float, intensity, intensity)
1857 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZI,
pcl::_PointXYZI)
1859 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PointXYZL,
1863 (std::uint32_t, label, label)
1866 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::Label,
1867 (std::uint32_t, label, label)
1870 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_Normal,
1871 (
float, normal_x, normal_x)
1872 (
float, normal_y, normal_y)
1873 (
float, normal_z, normal_z)
1874 (
float, curvature, curvature)
1876 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::Normal,
pcl::_Normal)
1878 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_Axis,
1879 (
float, normal_x, normal_x)
1880 (
float, normal_y, normal_y)
1881 (
float, normal_z, normal_z)
1883 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::Axis,
pcl::_Axis)
1885 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PointNormal,
1889 (
float, normal_x, normal_x)
1890 (
float, normal_y, normal_y)
1891 (
float, normal_z, normal_z)
1892 (
float, curvature, curvature)
1894 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_PointXYZRGBNormal,
1898 (
float, normal_x, normal_x)
1899 (
float, normal_y, normal_y)
1900 (
float, normal_z, normal_z)
1902 (
float, curvature, curvature)
1904 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointXYZRGBNormal,
pcl::_PointXYZRGBNormal)
1905 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PointXYZINormal,
1909 (
float, normal_x, normal_x)
1910 (
float, normal_y, normal_y)
1911 (
float, normal_z, normal_z)
1912 (
float, intensity, intensity)
1913 (
float, curvature, curvature)
1915 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PointXYZLNormal,
1919 (
float, normal_x, normal_x)
1920 (
float, normal_y, normal_y)
1921 (
float, normal_z, normal_z)
1922 (std::uint32_t, label, label)
1923 (
float, curvature, curvature)
1925 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PointWithRange,
1929 (
float, range, range)
1932 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_PointWithViewpoint,
1940 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointWithViewpoint,
pcl::_PointWithViewpoint)
1942 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::MomentInvariants,
1948 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PrincipalRadiiRSD,
1949 (
float, r_min, r_min)
1950 (
float, r_max, r_max)
1953 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::Boundary,
1954 (std::uint8_t, boundary_point, boundary_point)
1957 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PrincipalCurvatures,
1958 (
float, principal_curvature_x, principal_curvature_x)
1959 (
float, principal_curvature_y, principal_curvature_y)
1960 (
float, principal_curvature_z, principal_curvature_z)
1965 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PFHSignature125,
1966 (
float[125], histogram, pfh)
1969 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PFHRGBSignature250,
1970 (
float[250], histogram, pfhrgb)
1973 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PPFSignature,
1978 (
float, alpha_m, alpha_m)
1981 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::CPPFSignature,
1992 (
float, alpha_m, alpha_m)
1995 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PPFRGBSignature,
2000 (
float, r_ratio, r_ratio)
2001 (
float, g_ratio, g_ratio)
2002 (
float, b_ratio, b_ratio)
2003 (
float, alpha_m, alpha_m)
2006 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::NormalBasedSignature12,
2007 (
float[12], values, values)
2010 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::ShapeContext1980,
2011 (
float[1980], descriptor, shape_context)
2015 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::UniqueShapeContext1960,
2016 (
float[1960], descriptor, shape_context)
2020 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::SHOT352,
2021 (
float[352], descriptor, shot)
2025 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::SHOT1344,
2026 (
float[1344], descriptor, shot)
2030 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::FPFHSignature33,
2031 (
float[33], histogram, fpfh)
2034 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::BRISKSignature512,
2035 (
float, scale, brisk_scale)
2036 (
float, orientation, brisk_orientation)
2037 (
unsigned char[64], descriptor, brisk_descriptor512)
2040 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::VFHSignature308,
2041 (
float[308], histogram, vfh)
2044 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::GRSDSignature21,
2045 (
float[21], histogram, grsd)
2048 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::ESFSignature640,
2049 (
float[640], histogram, esf)
2052 POINT_CLOUD_REGISTER_POINT_STRUCT(
pcl::GASDSignature512,
2053 (
float[512], histogram, gasd)
2056 POINT_CLOUD_REGISTER_POINT_STRUCT(
pcl::GASDSignature984,
2057 (
float[984], histogram, gasd)
2060 POINT_CLOUD_REGISTER_POINT_STRUCT(
pcl::GASDSignature7992,
2061 (
float[7992], histogram, gasd)
2064 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::Narf36,
2065 (
float[36], descriptor, descriptor)
2068 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::GFPFHSignature16,
2069 (
float[16], histogram, gfpfh)
2072 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::IntensityGradient,
2073 (
float, gradient_x, gradient_x)
2074 (
float, gradient_y, gradient_y)
2075 (
float, gradient_z, gradient_z)
2078 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::PointWithScale,
2082 (
float, scale, scale)
2085 POINT_CLOUD_REGISTER_POINT_STRUCT(
pcl::PointSurfel,
2089 (
float, normal_x, normal_x)
2090 (
float, normal_y, normal_y)
2091 (
float, normal_z, normal_z)
2092 (std::uint32_t, rgba, rgba)
2093 (
float, radius, radius)
2094 (
float, confidence, confidence)
2095 (
float, curvature, curvature)
2098 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_ReferenceFrame,
2099 (
float[3], x_axis, x_axis)
2100 (
float[3], y_axis, y_axis)
2101 (
float[3], z_axis, z_axis)
2103 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::ReferenceFrame,
pcl::_ReferenceFrame)
2105 POINT_CLOUD_REGISTER_POINT_STRUCT (
pcl::_PointDEM,
2109 (
float, intensity, intensity)
2110 (
float, intensity_variance, intensity_variance)
2111 (
float, height_variance, height_variance)
2113 POINT_CLOUD_REGISTER_POINT_WRAPPER(
pcl::PointDEM,
pcl::_PointDEM)
2120 template<
typename Po
intT>
2121 struct FieldMatches<
PointT, ::pcl::fields::rgba>
2125 if (field.
name ==
"rgb")
2135 return (field.
name == traits::name<PointT, fields::rgba>::value &&
2136 field.
datatype == traits::datatype<PointT, fields::rgba>::value &&
2137 field.
count == traits::datatype<PointT, fields::rgba>::size);
2141 template<
typename Po
intT>
2142 struct FieldMatches<
PointT, fields::rgb>
2146 if (field.
name ==
"rgba")
2154 return (field.
name == traits::name<PointT, fields::rgb>::value &&
2155 (field.
datatype == traits::datatype<PointT, fields::rgb>::value ||
2157 field.
count == traits::datatype<PointT, fields::rgb>::size);
2165 #if defined _MSC_VER
2166 #pragma warning(disable: 4201)
2188 template <
typename Po
intT,
typename Field>
2189 struct has_field : boost::mpl::contains<typename pcl::traits::fieldList<PointT>::type, Field>::type
2193 template <
typename Po
intT,
typename Field>
2194 struct has_all_fields : boost::mpl::fold<Field,
2195 boost::mpl::bool_<true>,
2196 boost::mpl::and_<boost::mpl::_1,
2197 has_field<PointT, boost::mpl::_2> > >::type
2201 template <
typename Po
intT,
typename Field>
2202 struct has_any_field : boost::mpl::fold<Field,
2203 boost::mpl::bool_<false>,
2204 boost::mpl::or_<boost::mpl::_1,
2205 has_field<PointT, boost::mpl::_2> > >::type
2216 template <
typename Po
intT>
2217 struct has_xy : has_all_fields<PointT, boost::mpl::vector<pcl::fields::x,
2221 template <
typename Po
intT>
2222 constexpr
auto has_xy_v = has_xy<PointT>::value;
2224 template <
typename Po
intT>
2225 using HasXY = std::enable_if_t<has_xy_v<PointT>,
bool>;
2227 template <
typename Po
intT>
2228 using HasNoXY = std::enable_if_t<!has_xy_v<PointT>,
bool>;
2231 template <
typename Po
intT>
2232 struct has_xyz : has_all_fields<PointT, boost::mpl::vector<pcl::fields::x,
2237 template <
typename Po
intT>
2238 constexpr
auto has_xyz_v = has_xyz<PointT>::value;
2240 template <
typename Po
intT>
2241 using HasXYZ = std::enable_if_t<has_xyz_v<PointT>,
bool>;
2243 template <
typename Po
intT>
2244 using HasNoXYZ = std::enable_if_t<!has_xyz_v<PointT>,
bool>;
2248 template <
typename Po
intT>
2249 struct has_normal : has_all_fields<PointT, boost::mpl::vector<pcl::fields::normal_x,
2250 pcl::fields::normal_y,
2251 pcl::fields::normal_z> >
2254 template <
typename Po
intT>
2255 constexpr
auto has_normal_v = has_normal<PointT>::value;
2257 template <
typename Po
intT>
2258 using HasNormal = std::enable_if_t<has_normal_v<PointT>,
bool>;
2260 template <
typename Po
intT>
2261 using HasNoNormal = std::enable_if_t<!has_normal_v<PointT>,
bool>;
2264 template <
typename Po
intT>
2265 struct has_curvature : has_field<PointT, pcl::fields::curvature>
2268 template <
typename Po
intT>
2269 constexpr
auto has_curvature_v = has_curvature<PointT>::value;
2271 template <
typename Po
intT>
2272 using HasCurvature = std::enable_if_t<has_curvature_v<PointT>,
bool>;
2274 template <
typename Po
intT>
2275 using HasNoCurvature = std::enable_if_t<!has_curvature_v<PointT>,
bool>;
2278 template <
typename Po
intT>
2279 struct has_intensity : has_field<PointT, pcl::fields::intensity>
2282 template <
typename Po
intT>
2283 constexpr
auto has_intensity_v = has_intensity<PointT>::value;
2285 template <
typename Po
intT>
2286 using HasIntensity = std::enable_if_t<has_intensity_v<PointT>,
bool>;
2288 template <
typename Po
intT>
2289 using HasNoIntensity = std::enable_if_t<!has_intensity_v<PointT>,
bool>;
2292 template <
typename Po
intT>
2293 struct has_color : has_any_field<PointT, boost::mpl::vector<pcl::fields::rgb,
2294 pcl::fields::rgba> >
2297 template <
typename Po
intT>
2298 constexpr
auto has_color_v = has_color<PointT>::value;
2300 template <
typename Po
intT>
2301 using HasColor = std::enable_if_t<has_color_v<PointT>,
bool>;
2303 template <
typename Po
intT>
2304 using HasNoColor = std::enable_if_t<!has_color_v<PointT>,
bool>;
2307 template <
typename Po
intT>
2308 struct has_label : has_field<PointT, pcl::fields::label>
2311 template <
typename Po
intT>
2312 constexpr
auto has_label_v = has_label<PointT>::value;
2314 template <
typename Po
intT>
2315 using HasLabel = std::enable_if_t<has_label_v<PointT>,
bool>;
2317 template <
typename Po
intT>
2318 using HasNoLabel = std::enable_if_t<!has_label_v<PointT>,
bool>;
2321 #if defined _MSC_VER
2322 #pragma warning(default: 4201)
constexpr PointXYZI(const _PointXYZI &p)
constexpr PointXYZLNormal(const _PointXYZLNormal &p)
A point structure representing normal coordinates and the surface curvature estimate.
Eigen::Map< Eigen::Vector3f > Vector3fMap
static constexpr int descriptorSize()
constexpr Narf36()=default
constexpr BorderDescription(int _x, int _y)
A point structure representing the grayscale intensity in single-channel images.
friend std::ostream & operator<<(std::ostream &os, const CPPFSignature &p)
constexpr PointXYZRGBA(float _x, float _y, float _z, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b, std::uint8_t _a)
A point structure representing a Shape Context.
constexpr PointXYZRGBA(std::uint8_t _r, std::uint8_t _g, std::uint8_t _b, std::uint8_t _a)
constexpr PointXYZRGBL(std::uint8_t _r, std::uint8_t _g, std::uint8_t _b)
constexpr PointXYZI(float _intensity=0.f)
Eigen::Map< Eigen::Vector3f > getXAxisVector3fMap()
constexpr ReferenceFrame(const _ReferenceFrame &p)
std::bitset< 32 > BorderTraits
Data type to store extended information about a transition from foreground to backgroundSpecification...
friend std::ostream & operator<<(std::ostream &os, const UniqueShapeContext1960 &p)
constexpr Normal(float _curvature=0.f)
A point structure representing a description of whether a point is lying on a surface boundary or not...
friend std::ostream & operator<<(std::ostream &os, const GASDSignature7992 &p)
constexpr PointXYZRGB(std::uint8_t _r, std::uint8_t _g, std::uint8_t _b)
A point structure representing Euclidean xyz coordinates, a label, together with normal coordinates a...
constexpr ESFSignature640()=default
friend std::ostream & operator<<(std::ostream &os, const PointDEM &p)
A point structure representing Euclidean xyz coordinates, padded with an extra range float...
PCL_ADD_POINT4D PCL_ADD_RGB std::uint32_t label
constexpr PointSurfel(float _x, float _y, float _z, float _nx, float _ny, float _nz, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b, std::uint8_t _a, float _radius, float _confidence, float _curvature)
constexpr PointXYZRGB(float _x, float _y, float _z)
constexpr ReferenceFrame(const float(&_rf)[9])
constexpr PointXYZLAB(float _x, float _y, float _z, float _l, float _a, float _b)
friend std::ostream & operator<<(std::ostream &os, const Normal &p)
constexpr RGB(std::uint8_t _r, std::uint8_t _g, std::uint8_t _b, std::uint8_t _a=255)
constexpr Intensity(float _intensity=0.f)
const Eigen::Map< const Eigen::Vector4f, Eigen::Aligned > Vector4fMapConst
constexpr PrincipalRadiiRSD(float _r_min, float _r_max)
float scale
Diameter of the meaningful keypoint neighborhood.
constexpr VFHSignature308()=default
constexpr PointDEM(const _PointDEM &p)
A point structure representing the Normal Based Signature for a feature matrix of 4-by-3...
float principal_curvature[3]
constexpr PrincipalCurvatures(float _x, float _y, float _z)
A point structure representing a Unique Shape Context.
static constexpr int descriptorSize()
constexpr UniqueShapeContext1960()=default
constexpr Axis(const _Axis &p)
constexpr PPFRGBSignature(float _f1, float _f2, float _f3, float _f4, float _alpha, float _r, float _g, float _b)
Eigen::Map< Eigen::Vector3f > getZAxisVector3fMap()
constexpr PointWithViewpoint(float _x, float _y, float _z)
A structure representing the Local Reference Frame of a point.
unsigned char descriptor[64]
constexpr PointWithViewpoint(const _PointWithViewpoint &p)
constexpr PointXYZRGB(float _x, float _y, float _z, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b)
constexpr PointXYZRGBNormal(const _PointXYZRGBNormal &p)
friend std::ostream & operator<<(std::ostream &os, const PointXY &p)
constexpr IntensityGradient()
float angle
Computed orientation of the keypoint (-1 if not applicable).
Eigen::Map< Eigen::Vector2f > Vector2fMap
constexpr PointXYZL(std::uint32_t _label=0)
static constexpr int descriptorSize()
static constexpr int descriptorSize()
PCL_ADD_UNION_RGB float radius
constexpr PointXYZRGB(const _PointXYZRGB &p)
constexpr GASDSignature7992()=default
constexpr SHOT1344()=default
constexpr Intensity8u(std::uint8_t _intensity=0)
friend std::ostream & operator<<(std::ostream &os, const GASDSignature512 &p)
const Eigen::Map< const Eigen::Vector3f > getZAxisVector3fMap() const
A point structure representing Digital Elevation Map.
constexpr PointXYZHSV(float _x, float _y, float _z, float _h, float _s, float _v)
friend std::ostream & operator<<(std::ostream &os, const MomentInvariants &p)
constexpr Intensity8u(const _Intensity8u &p)
constexpr PointWithScale(float _x, float _y, float _z, float _scale=1.f, float _angle=-1.f, float _response=0.f, int _octave=0)
friend std::ostream & operator<<(std::ostream &os, const GFPFHSignature16 &p)
A point structure representing the Binary Robust Invariant Scalable Keypoints (BRISK).
constexpr GRSDSignature21()=default
friend std::ostream & operator<<(std::ostream &os, const Intensity8u &p)
constexpr PointXY(float _x, float _y)
friend std::ostream & operator<<(std::ostream &os, const PointXYZI &p)
float response
The response by which the most strong keypoints have been selected.
Eigen::Map< Vector3c > Vector3cMap
constexpr Label(std::uint32_t _label=0)
A point structure representing an Axis using its normal coordinates.
static constexpr int descriptorSize()
constexpr PointXYZRGBL(float _x, float _y, float _z)
constexpr PointXYZINormal(float _intensity=0.f)
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
friend std::ostream & operator<<(std::ostream &os, const FPFHSignature33 &p)
constexpr MomentInvariants(float _j1, float _j2, float _j3)
pcl::Vector2fMap getVector2fMap()
friend std::ostream & operator<<(std::ostream &os, const PrincipalCurvatures &p)
A point structure representing Euclidean xyz coordinates, and the RGBA color.
A point structure representing the grayscale intensity in single-channel images.
static constexpr int descriptorSize()
constexpr PointXYZRGBL(float _x, float _y, float _z, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b, std::uint32_t _label=0, std::uint8_t _a=255)
constexpr PointXYZLNormal(float _x, float _y, float _z, std::uint32_t _label, float n_x, float n_y, float n_z, float _curvature=0.f)
std::ostream & operator<<(std::ostream &os, const BivariatePolynomialT< real > &p)
A point structure representing the Fast Point Feature Histogram (FPFH).
constexpr Boundary(std::uint8_t _boundary=0)
A 2D point structure representing Euclidean xy coordinates.
constexpr PrincipalRadiiRSD()=default
constexpr PointXYZI(float _x, float _y, float _z, float _intensity=0.f)
constexpr PointXYZINormal(float _x, float _y, float _z, float _intensity, float n_x, float n_y, float n_z, float _curvature=0.f)
constexpr PointDEM(float _x, float _y, float _z)
friend std::ostream & operator<<(std::ostream &os, const ShapeContext1980 &p)
constexpr PointWithScale()
friend std::ostream & operator<<(std::ostream &os, const PointSurfel &p)
friend std::ostream & operator<<(std::ostream &os, const PointNormal &p)
constexpr Normal(float n_x, float n_y, float n_z, float _curvature=0.f)
static constexpr int descriptorSize()
A structure representing RGB color information.
friend std::ostream & operator<<(std::ostream &os, const Boundary &p)
A point structure representing an N-D histogram.
A point structure representing Euclidean xyz coordinates, and the CIELAB color.
static constexpr int descriptorSize()
static constexpr int descriptorSize()
A 2D point structure representing pixel image coordinates.
constexpr PFHRGBSignature250()=default
constexpr Narf36(float _x, float _y, float _z, float _roll, float _pitch, float _yaw)
friend std::ostream & operator<<(std::ostream &os, const PointXYZLAB &p)
constexpr PointNormal(float _curvature=0.f)
constexpr PointXYZRGBNormal(float _curvature=0.f)
A point structure representing the GFPFH descriptor with 16 bins.
friend std::ostream & operator<<(std::ostream &os, const SHOT352 &p)
constexpr RGB(const _RGB &p)
const Eigen::Map< const Eigen::Vector3f > getXAxisVector3fMap() const
friend std::ostream & operator<<(std::ostream &os, const PointWithScale &p)
constexpr PointXYZL(const _PointXYZL &p)
A point structure representing the Point Feature Histogram with colors (PFHRGB).
constexpr PointWithRange(const _PointWithRange &p)
static constexpr int descriptorSize()
constexpr PointXYZRGBA(float _x, float _y, float _z)
float principal_curvature_z
A point structure representing Euclidean xyz coordinates, and the intensity value.
constexpr PointXYZRGBL(const _PointXYZRGBL &p)
Eigen::Map< Eigen::Array3f > Array3fMap
constexpr PointNormal(float _x, float _y, float _z, float n_x, float n_y, float n_z, float _curvature=0.f)
friend std::ostream & operator<<(std::ostream &os, const PointUV &p)
constexpr PointUV()=default
float principal_curvature_x
float principal_curvature_y
constexpr BRISKSignature512(float _scale, float _orientation)
PCL_ADD_UNION_RGB float curvature
friend std::ostream & operator<<(std::ostream &os, const ESFSignature640 &p)
constexpr Intensity32u(const _Intensity32u &p)
constexpr PrincipalCurvatures(float _pc1, float _pc2)
constexpr Narf36(float _x, float _y, float _z)
constexpr ShapeContext1980()=default
friend std::ostream & operator<<(std::ostream &os, const PPFSignature &p)
constexpr CPPFSignature(float _f1, float _f2, float _f3, float _f4, float _f5, float _f6, float _f7, float _f8, float _f9, float _f10, float _alpha=0.f)
constexpr PointWithScale(const _PointWithScale &p)
constexpr SHOT352()=default
A point structure representing Euclidean xyz coordinates.
A point structure representing Euclidean xyz coordinates, intensity, together with normal coordinates...
static constexpr int descriptorSize()
constexpr Normal(const _Normal &p)
PCL_ADD_POINT4D std::uint32_t label
constexpr PrincipalCurvatures()
constexpr FPFHSignature33()=default
constexpr PointXYZRGBNormal(float _x, float _y, float _z, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b, std::uint8_t _a, float n_x, float n_y, float n_z, float _curvature=0.f)
constexpr PointXYZINormal(float _x, float _y, float _z, float _intensity=0.f)
constexpr GASDSignature512()=default
A point structure representing the Globally Aligned Spatial Distribution (GASD) shape and color descr...
constexpr PointWithRange(float _x, float _y, float _z, float _range=0.f)
static constexpr int descriptorSize()
constexpr PointXYZHSV(float _h, float _s, float _v)
A point structure representing an interest point with Euclidean xyz coordinates, and an interest valu...
friend std::ostream & operator<<(std::ostream &os, const GASDSignature984 &p)
const Eigen::Map< const Vector4c, Eigen::Aligned > Vector4cMapConst
A point structure representing the three moment invariants.
constexpr PointXYZRGBNormal(float _x, float _y, float _z, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b, float n_x, float n_y, float n_z, float _curvature=0.f)
pcl::Vector2fMapConst getVector2fMap() const
constexpr PointWithViewpoint()
const Eigen::Map< const Eigen::Vector3f > Vector3fMapConst
PCL_ADD_POINT4D float intensity
friend std::ostream & operator<<(std::ostream &os, const Intensity32u &p)
constexpr PointXYZRGBNormal(std::uint8_t _r, std::uint8_t _g, std::uint8_t _b)
Eigen::Map< Eigen::Vector3f > getYAxisVector3fMap()
constexpr PointNormal(float _x, float _y, float _z)
constexpr PointWithRange(float _range=0.f)
const Eigen::Map< const Eigen::Matrix3f > getMatrix3fMap() const
friend std::ostream & operator<<(std::ostream &os, const PointXYZINormal &p)
A point structure representing the grayscale intensity in single-channel images.
friend std::ostream & operator<<(std::ostream &os, const PointXYZLNormal &p)
constexpr PointXYZ(float _x, float _y, float _z)
std::uint8_t boundary_point
A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape onl...
constexpr Intensity32u(std::uint32_t _intensity=0)
friend std::ostream & operator<<(std::ostream &os, const RGB &p)
friend std::ostream & operator<<(std::ostream &os, const GRSDSignature21 &p)
int octave
octave (pyramid layer) from which the keypoint has been extracted.
A structure to store if a point in a range image lies on a border between an obstacle and the backgro...
constexpr PointXYZRGBA(const _PointXYZRGBA &p)
constexpr PointXYZLNormal(float _x, float _y, float _z, std::uint32_t _label=0u)
constexpr PrincipalCurvatures(float _x, float _y, float _z, float _pc1, float _pc2)
constexpr PPFRGBSignature(float _f1, float _f2, float _f3, float _f4, float _alpha=0.f)
friend std::ostream & operator<<(std::ostream &os, const PointWithRange &p)
constexpr GASDSignature984()=default
friend std::ostream & operator<<(std::ostream &os, const BorderDescription &p)
constexpr PointXYZRGBL(std::uint32_t _label=0)
constexpr PointXYZLAB(const _PointXYZLAB &p)
A point structure representing Euclidean xyz coordinates, together with normal coordinates and the su...
Eigen::Map< Eigen::Array4f, Eigen::Aligned > Array4fMap
friend std::ostream & operator<<(std::ostream &os, const PPFRGBSignature &p)
constexpr Intensity(const _Intensity &p)
const Eigen::Map< const Eigen::Array4f, Eigen::Aligned > Array4fMapConst
friend std::ostream & operator<<(std::ostream &os, const IntensityGradient &p)
static constexpr int descriptorSize_v
friend std::ostream & operator<<(std::ostream &os, const PointXYZL &p)
constexpr MomentInvariants()=default
constexpr PointUV(float _u, float _v)
friend std::ostream & operator<<(std::ostream &os, const Narf36 &p)
const Eigen::Map< const Eigen::Vector2f > Vector2fMapConst
A point structure representing the Globally Aligned Spatial Distribution (GASD) shape and color descr...
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...
friend std::ostream & operator<<(std::ostream &os, const PrincipalRadiiRSD &p)
constexpr ReferenceFrame()
A point structure representing the intensity gradient of an XYZI point cloud.
constexpr PPFSignature(float _alpha=0.f)
friend std::ostream & operator<<(std::ostream &os, const PFHSignature125 &p)
A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape+col...
constexpr PointXYZ(const _PointXYZ &p)
constexpr GFPFHSignature16()=default
static constexpr int descriptorSize()
friend std::ostream & operator<<(std::ostream &os, const BRISKSignature512 &p)
friend std::ostream & operator<<(std::ostream &os, const PointXYZRGBNormal &p)
friend std::ostream & operator<<(std::ostream &os, const SHOT1344 &p)
A point structure representing the Viewpoint Feature Histogram (VFH).
constexpr PointXYZRGBNormal(float _x, float _y, float _z)
friend std::ostream & operator<<(std::ostream &os, const PFHRGBSignature250 &p)
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...
static constexpr int descriptorSize()
Eigen::Matrix< std::uint8_t, 4, 1 > Vector4c
A point structure representing the Narf descriptor.
const Eigen::Map< const Vector3c > Vector3cMapConst
A point structure representing Euclidean xyz coordinates, and the RGB color.
A point structure representing the principal curvatures and their magnitudes.
constexpr PPFRGBSignature(float _alpha=0.f)
Eigen::Map< Vector4c, Eigen::Aligned > Vector4cMap
constexpr PointDEM(float _x, float _y, float _z, float _intensity, float _intensity_variance, float _height_variance)
static constexpr int descriptorSize()
constexpr PointWithViewpoint(float _x, float _y, float _z, float _vp_x, float _vp_y, float _vp_z)
friend std::ostream & operator<<(std::ostream &os, const VFHSignature308 &p)
A point structure representing the Point Feature Histogram (PFH).
constexpr NormalBasedSignature12()=default
A point structure representing the Ensemble of Shape Functions (ESF).
constexpr PointNormal(const _PointNormal &p)
const Eigen::Map< const Eigen::Array3f > Array3fMapConst
A point structure representing the Globally Aligned Spatial Distribution (GASD) shape descriptor...
friend std::ostream & operator<<(std::ostream &os, const Label &p)
constexpr PPFSignature(float _f1, float _f2, float _f3, float _f4, float _alpha=0.f)
A point structure representing the Global Radius-based Surface Descriptor (GRSD). ...
constexpr IntensityGradient(float _x, float _y, float _z)
constexpr PointSurfel(const _PointSurfel &p)
friend std::ostream & operator<<(std::ostream &os, const NormalBasedSignature12 &p)
constexpr PointXYZL(float _x, float _y, float _z, std::uint32_t _label=0)
constexpr BRISKSignature512()=default
constexpr PointXYZINormal(const _PointXYZINormal &p)
A surfel, that is, a point structure representing Euclidean xyz coordinates, together with normal coo...
constexpr PointXYZHSV(const _PointXYZHSV &p)
constexpr BorderDescription()=default
Eigen::Map< Eigen::Vector4f, Eigen::Aligned > Vector4fMap
Eigen::Matrix< std::uint8_t, 3, 1 > Vector3c
friend std::ostream & operator<<(std::ostream &os, const Intensity &p)
constexpr Axis(float n_x, float n_y, float n_z)
A point structure representing Euclidean xyz coordinates, and the RGB color, together with normal coo...
constexpr PointXYZLNormal(std::uint32_t _label=0u)
A point structure for storing the Point Pair Feature (PPF) values.
constexpr PFHSignature125()=default
constexpr PointXYZRGBNormal(float _x, float _y, float _z, std::uint8_t _r, std::uint8_t _g, std::uint8_t _b)
static constexpr int descriptorSize()
constexpr CPPFSignature(float _alpha=0.f)
static constexpr int descriptorSize()
const Eigen::Map< const Eigen::Vector3f > getYAxisVector3fMap() const
Eigen::Map< Eigen::Matrix3f > getMatrix3fMap()
A point structure for storing the Point Pair Color Feature (PPFRGB) values.