13#include <pcl/pcl_exports.h>
14#include <pcl/register_point_struct.h>
15#include <pcl/type_traits.h>
46 template<
typename FeaturePo
intT>
88#if defined(_LIBCPP_VERSION) && _LIBCPP_VERSION <= 1101
89 constexpr operator unsigned char()
const
139 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<SHOT352>; }
154 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<SHOT1344>; }
178 inline const Eigen::Map<const Eigen::Vector3f>
getXAxisVector3fMap ()
const {
return (Eigen::Vector3f::Map (x_axis)); }
180 inline const Eigen::Map<const Eigen::Vector3f>
getYAxisVector3fMap ()
const {
return (Eigen::Vector3f::Map (y_axis)); }
182 inline const Eigen::Map<const Eigen::Vector3f>
getZAxisVector3fMap ()
const {
return (Eigen::Vector3f::Map (z_axis)); }
183 inline Eigen::Map<Eigen::Matrix3f>
getMatrix3fMap () {
return (Eigen::Matrix3f::Map (rf)); }
184 inline const Eigen::Map<const Eigen::Matrix3f>
getMatrix3fMap ()
const {
return (Eigen::Matrix3f::Map (rf)); }
208 _ReferenceFrame{ {{_rf[0], _rf[1], _rf[2], _rf[3], _rf[4], _rf[5], _rf[6], _rf[7], _rf[8]}} } {}
220 float descriptor[1980] = {0.f};
222 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<ShapeContext1980>; }
235 float descriptor[1960] = {0.f};
237 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<UniqueShapeContext1960>; }
250 float histogram[125] = {0.f};
251 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<PFHSignature125>; }
264 float histogram[250] = {0.f};
265 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<PFHRGBSignature250>; }
272 PCL_EXPORTS std::ostream& operator << (std::ostream& os,
const PPFSignature& p);
278 float f1 = 0.f, f2 = 0.f, f3 = 0.f, f4 = 0.f;
283 inline constexpr PPFSignature (
float _f1,
float _f2,
float _f3,
float _f4,
float _alpha = 0.f):
284 f1 (_f1), f2 (_f2), f3 (_f3), f4 (_f4), alpha_m (_alpha) {}
286 friend std::ostream& operator << (std::ostream& os,
const PPFSignature& p);
289 PCL_EXPORTS std::ostream& operator << (std::ostream& os,
const CPPFSignature& p);
295 float f1, f2, f3, f4, f5, f6, f7, f8, f9, f10;
299 CPPFSignature (0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, 0.f, _alpha) {}
301 inline constexpr CPPFSignature (
float _f1,
float _f2,
float _f3,
float _f4,
float _f5,
float _f6,
302 float _f7,
float _f8,
float _f9,
float _f10,
float _alpha = 0.f):
303 f1 (_f1), f2 (_f2), f3 (_f3), f4 (_f4), f5 (_f5), f6 (_f6),
304 f7 (_f7), f8 (_f8), f9 (_f9), f10 (_f10), alpha_m (_alpha) {}
306 friend std::ostream& operator << (std::ostream& os,
const CPPFSignature& p);
315 float f1 = 0.f, f2 = 0.f, f3 = 0.f, f4 = 0.f;
316 float r_ratio = 0.f, g_ratio = 0.f, b_ratio = 0.f;
321 inline constexpr PPFRGBSignature (
float _f1,
float _f2,
float _f3,
float _f4,
float _alpha = 0.f):
324 inline constexpr PPFRGBSignature (
float _f1,
float _f2,
float _f3,
float _f4,
float _alpha,
float _r,
float _g,
float _b):
325 f1 (_f1), f2 (_f2), f3 (_f3), f4 (_f4), r_ratio (_r), g_ratio (_g), b_ratio (_b), alpha_m (_alpha) {}
337 float values[12] = {0.f};
350 float histogram[33] = {0.f};
351 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<FPFHSignature33>; }
364 float histogram[308] = {0.f};
365 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<VFHSignature308>; }
378 float histogram[21] = {0.f};
379 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<GRSDSignature21>; }
392 float histogram[640] = {0.f};
393 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<ESFSignature640>; }
406 float histogram[512] = {0.f};
407 static constexpr int descriptorSize() {
return detail::traits::descriptorSize_v<GASDSignature512>; }
420 float histogram[984] = {0.f};
421 static constexpr int descriptorSize() {
return detail::traits::descriptorSize_v<GASDSignature984>; }
434 float histogram[7992] = {0.f};
435 static constexpr int descriptorSize() {
return detail::traits::descriptorSize_v<GASDSignature7992>; }
448 float histogram[16] = {0.f};
449 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<GFPFHSignature16>; }
463 float orientation = 0.f;
464 unsigned char descriptor[64] = {0};
465 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<BRISKSignature512>; }
469 inline constexpr BRISKSignature512 (
float _scale,
float _orientation): scale (_scale), orientation (_orientation) {}
474 PCL_EXPORTS std::ostream& operator << (std::ostream& os,
const Narf36& p);
480 float x = 0.f, y = 0.f, z = 0.f, roll = 0.f, pitch = 0.f, yaw = 0.f;
481 float descriptor[36] = {0.f};
482 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<Narf36>; }
486 inline constexpr Narf36 (
float _x,
float _y,
float _z):
Narf36 (_x, _y, _z, 0.f, 0.f, 0.f) {}
488 inline constexpr Narf36 (
float _x,
float _y,
float _z,
float _roll,
float _pitch,
float _yaw):
489 x (_x), y (_y), z (_z), roll (_roll), pitch (_pitch), yaw (_yaw) {}
491 friend std::ostream& operator << (std::ostream& os,
const Narf36& p);
502 static constexpr int descriptorSize () {
return detail::traits::descriptorSize_v<Histogram<N>>; }
505 template <
int N> std::ostream&
513 [&os](
const auto& hist) { os <<
", " << hist; });
527 (
float, r_min, r_min)
528 (
float, r_max, r_max)
532 (std::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[352], descriptor, shot)
549 (
float[1344], descriptor, shot)
554 (
float[3], x_axis, x_axis)
555 (
float[3], y_axis, y_axis)
556 (
float[3], z_axis, z_axis)
561 (
float[1980], descriptor, shape_context)
566 (
float[1960], descriptor, shape_context)
571 (
float[125], histogram, pfh)
575 (
float[250], histogram, pfhrgb)
583 (
float, alpha_m, alpha_m)
597 (
float, alpha_m, alpha_m)
605 (
float, r_ratio, r_ratio)
606 (
float, g_ratio, g_ratio)
607 (
float, b_ratio, b_ratio)
608 (
float, alpha_m, alpha_m)
612 (
float[12], values, values)
616 (
float[33], histogram, fpfh)
620 (
float[308], histogram, vfh)
624 (
float[21], histogram, grsd)
628 (
float[640], histogram, esf)
632 (
float[512], histogram, gasd)
636 (
float[984], histogram, gasd)
640 (
float[7992], histogram, gasd)
644 (
float[16], histogram, gfpfh)
648 (
float, scale, brisk_scale)
649 (
float, orientation, brisk_orientation)
650 (
unsigned char[64], descriptor, brisk_descriptor512)
654 (
float[36], descriptor, descriptor)
Defines all the PCL implemented PointT feature type structures.
#define PCL_MAKE_ALIGNED_OPERATOR_NEW
Macro to signal a class requires a custom allocator.
Defines functions, macros and traits for allocating and using memory.
static constexpr int descriptorSize_v
std::ostream & operator<<(std::ostream &os, const BivariatePolynomialT< real > &p)
Defines all the PCL and non-PCL macros used.
#define PCL_IF_CONSTEXPR(x)
A structure representing the Local Reference Frame of a point.
Eigen::Map< Eigen::Vector3f > getZAxisVector3fMap()
Eigen::Map< Eigen::Vector3f > getXAxisVector3fMap()
Eigen::Map< Eigen::Vector3f > getYAxisVector3fMap()
const Eigen::Map< const Eigen::Vector3f > getYAxisVector3fMap() const
Eigen::Map< Eigen::Matrix3f > getMatrix3fMap()
const Eigen::Map< const Eigen::Vector3f > getZAxisVector3fMap() const
const Eigen::Map< const Eigen::Vector3f > getXAxisVector3fMap() const
const Eigen::Map< const Eigen::Matrix3f > getMatrix3fMap() const
A point structure representing the Binary Robust Invariant Scalable Keypoints (BRISK).
constexpr BRISKSignature512()=default
static constexpr int descriptorSize()
constexpr BRISKSignature512(float _scale, float _orientation)
A point structure representing a description of whether a point is lying on a surface boundary or not...
constexpr Boundary(std::uint8_t _boundary=0)
friend std::ostream & operator<<(std::ostream &os, const Boundary &p)
std::uint8_t boundary_point
A point structure for storing the Point Pair Feature (CPPF) values.
constexpr CPPFSignature(float _alpha=0.f)
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)
A point structure representing the Ensemble of Shape Functions (ESF).
static constexpr int descriptorSize()
constexpr ESFSignature640()=default
A point structure representing the Fast Point Feature Histogram (FPFH).
static constexpr int descriptorSize()
constexpr FPFHSignature33()=default
A point structure representing the Globally Aligned Spatial Distribution (GASD) shape descriptor.
static constexpr int descriptorSize()
constexpr GASDSignature512()=default
A point structure representing the Globally Aligned Spatial Distribution (GASD) shape and color descr...
static constexpr int descriptorSize()
constexpr GASDSignature7992()=default
A point structure representing the Globally Aligned Spatial Distribution (GASD) shape and color descr...
constexpr GASDSignature984()=default
static constexpr int descriptorSize()
A point structure representing the GFPFH descriptor with 16 bins.
constexpr GFPFHSignature16()=default
static constexpr int descriptorSize()
A point structure representing the Global Radius-based Surface Descriptor (GRSD).
static constexpr int descriptorSize()
constexpr GRSDSignature21()=default
Members: float histogram[N].
static constexpr int descriptorSize()
A point structure representing the three moment invariants.
constexpr MomentInvariants()=default
constexpr MomentInvariants(float _j1, float _j2, float _j3)
friend std::ostream & operator<<(std::ostream &os, const MomentInvariants &p)
A point structure representing the Narf descriptor.
constexpr Narf36(float _x, float _y, float _z, float _roll, float _pitch, float _yaw)
static constexpr int descriptorSize()
constexpr Narf36(float _x, float _y, float _z)
constexpr Narf36()=default
A point structure representing the Normal Based Signature for a feature matrix of 4-by-3.
constexpr NormalBasedSignature12()=default
A point structure representing the Point Feature Histogram with colors (PFHRGB).
constexpr PFHRGBSignature250()=default
static constexpr int descriptorSize()
A point structure representing the Point Feature Histogram (PFH).
constexpr PFHSignature125()=default
static constexpr int descriptorSize()
A point structure for storing the Point Pair Color Feature (PPFRGB) values.
constexpr PPFRGBSignature(float _f1, float _f2, float _f3, float _f4, float _alpha, float _r, float _g, float _b)
constexpr PPFRGBSignature(float _f1, float _f2, float _f3, float _f4, float _alpha=0.f)
constexpr PPFRGBSignature(float _alpha=0.f)
A point structure for storing the Point Pair Feature (PPF) values.
constexpr PPFSignature(float _f1, float _f2, float _f3, float _f4, float _alpha=0.f)
constexpr PPFSignature(float _alpha=0.f)
A point structure representing the principal curvatures and their magnitudes.
constexpr PrincipalCurvatures(float _pc1, float _pc2)
constexpr PrincipalCurvatures()
float principal_curvature_x
constexpr PrincipalCurvatures(float _x, float _y, float _z)
friend std::ostream & operator<<(std::ostream &os, const PrincipalCurvatures &p)
float principal_curvature_z
float principal_curvature_y
constexpr PrincipalCurvatures(float _x, float _y, float _z, float _pc1, float _pc2)
float principal_curvature[3]
A point structure representing the minimum and maximum surface radii (in meters) computed using RSD.
friend std::ostream & operator<<(std::ostream &os, const PrincipalRadiiRSD &p)
constexpr PrincipalRadiiRSD(float _r_min, float _r_max)
constexpr PrincipalRadiiRSD()=default
constexpr ReferenceFrame()
constexpr ReferenceFrame(const float(&_rf)[9])
constexpr ReferenceFrame(const _ReferenceFrame &p)
A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape+col...
static constexpr int descriptorSize()
constexpr SHOT1344()=default
friend std::ostream & operator<<(std::ostream &os, const SHOT1344 &p)
A point structure representing the generic Signature of Histograms of OrienTations (SHOT) - shape onl...
constexpr SHOT352()=default
friend std::ostream & operator<<(std::ostream &os, const SHOT352 &p)
static constexpr int descriptorSize()
A point structure representing a Shape Context.
static constexpr int descriptorSize()
constexpr ShapeContext1980()=default
A point structure representing a Unique Shape Context.
static constexpr int descriptorSize()
constexpr UniqueShapeContext1960()=default
A point structure representing the Viewpoint Feature Histogram (VFH).
static constexpr int descriptorSize()
constexpr VFHSignature308()=default