43 #include <pcl/features/eigen.h>
44 #include <pcl/features/feature.h>
59 template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT = pcl::PrincipalCurvatures>
63 using Ptr = shared_ptr<PrincipalCurvaturesEstimation<PointInT, PointNT, PointOutT> >;
64 using ConstPtr = shared_ptr<const PrincipalCurvaturesEstimation<PointInT, PointNT, PointOutT> >;
79 xyz_centroid_ (
Eigen::Vector3f::Zero ()),
80 demean_ (
Eigen::Vector3f::Zero ()),
81 covariance_matrix_ (
Eigen::Matrix3f::Zero ()),
82 eigenvector_ (
Eigen::Vector3f::Zero ()),
83 eigenvalues_ (
Eigen::Vector3f::Zero ())
102 int p_idx,
const std::vector<int> &indices,
103 float &pcx,
float &pcy,
float &pcz,
float &pc1,
float &pc2);
117 std::vector<Eigen::Vector3f, Eigen::aligned_allocator<Eigen::Vector3f> > projected_normals_;
120 Eigen::Vector3f xyz_centroid_;
123 Eigen::Vector3f demean_;
126 EIGEN_ALIGN16 Eigen::Matrix3f covariance_matrix_;
129 Eigen::Vector3f eigenvector_;
131 Eigen::Vector3f eigenvalues_;
135 #ifdef PCL_NO_PRECOMPILE
136 #include <pcl/features/impl/principal_curvatures.hpp>
PrincipalCurvaturesEstimation()
Empty constructor.
std::string feature_name_
The feature name.
void computePointPrincipalCurvatures(const pcl::PointCloud< PointNT > &normals, int p_idx, const std::vector< int > &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...
shared_ptr< const Feature< PointInT, PointOutT > > ConstPtr
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
Feature represents the base feature class.
PrincipalCurvaturesEstimation estimates the directions (eigenvectors) and magnitudes (eigenvalues) of...
shared_ptr< Feature< PointInT, PointOutT > > Ptr