43 #include <pcl/features/feature.h>
58 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::PrincipalCurvatures>
62 using Ptr = shared_ptr<PrincipalCurvaturesEstimation<PointInT, PointNT, PointOutT> >;
63 using ConstPtr = shared_ptr<const PrincipalCurvaturesEstimation<PointInT, PointNT, PointOutT> >;
78 xyz_centroid_ (
Eigen::Vector3f::Zero ()),
79 demean_ (
Eigen::Vector3f::Zero ()),
80 covariance_matrix_ (
Eigen::Matrix3f::Zero ()),
81 eigenvector_ (
Eigen::Vector3f::Zero ()),
82 eigenvalues_ (
Eigen::Vector3f::Zero ())
102 float &pcx,
float &pcy,
float &pcz,
float &pc1,
float &pc2);
116 std::vector<Eigen::Vector3f, Eigen::aligned_allocator<Eigen::Vector3f> > projected_normals_;
119 Eigen::Vector3f xyz_centroid_;
122 Eigen::Vector3f demean_;
125 EIGEN_ALIGN16 Eigen::Matrix3f covariance_matrix_;
128 Eigen::Vector3f eigenvector_;
130 Eigen::Vector3f eigenvalues_;
134 #ifdef PCL_NO_PRECOMPILE
135 #include <pcl/features/impl/principal_curvatures.hpp>
Feature represents the base feature class.
shared_ptr< Feature< PointInT, PointOutT > > Ptr
std::string feature_name_
The feature name.
shared_ptr< const Feature< PointInT, PointOutT > > ConstPtr
PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of...
void computePointPrincipalCurvatures(const pcl::PointCloud< PointNT > &normals, int p_idx, const pcl::Indices &indices, float &pcx, float &pcy, float &pcz, float &pc1, float &pc2)
Perform Principal Components Analysis (PCA) on the point normals of a surface patch in the tangent pl...
PrincipalCurvaturesEstimation()
Empty constructor.
void computeFeature(PointCloudOut &output) override
Estimate the principal curvature (eigenvector of the max eigenvalue), along with both the max (pc1) a...
typename Feature< PointInT, PointOutT >::PointCloudOut PointCloudOut
IndicesAllocator<> Indices
Type used for indices in PCL.