41#ifndef PCL_FEATURES_IMPL_CPPF_H_
42#define PCL_FEATURES_IMPL_CPPF_H_
44#include <pcl/features/cppf.h>
47template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT>
59template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT>
void
64 output.points.reserve (indices_->size () * input_->size ());
67 for (
const auto& i: *indices_)
69 for (std::size_t j = 0 ; j < input_->size (); ++j)
74 if (
static_cast<std::size_t
>(i) != j)
83 p.f1, p.f2, p.f3, p.f4, p.f5, p.f6, p.f7, p.f8, p.f9, p.f10))
101 PCL_ERROR (
"[pcl::%s::computeFeature] Computing pair feature vector between points %lu and %lu went wrong.\n", getClassName ().c_str (), i, j);
102 p.f1 = p.f2 = p.f3 = p.f4 = p.f5 = p.f6 = p.f7 = p.f8 = p.f9 = p.f10 = p.alpha_m = std::numeric_limits<float>::quiet_NaN ();
103 output.is_dense =
false;
108 p.f1 = p.f2 = p.f3 = p.f4 = p.f5 = p.f6 = p.f7 = p.f8 = p.f9 = p.f10 = p.alpha_m = std::numeric_limits<float>::quiet_NaN ();
109 output.is_dense =
false;
112 output.push_back (p);
117 output.width = output.size ();
120#define PCL_INSTANTIATE_CPPFEstimation(T,NT,OutT) template class PCL_EXPORTS pcl::CPPFEstimation<T,NT,OutT>;
Class that calculates the "surflet" features for each pair in the given pointcloud.
CPPFEstimation()
Empty Constructor.
Iterator class for point clouds with or without given indices.
Feature represents the base feature class.
std::string feature_name_
The feature name.
PCL_EXPORTS bool computeCPPFPairFeature(const Eigen::Vector4f &p1, const Eigen::Vector4f &n1, const Eigen::Vector4i &c1, const Eigen::Vector4f &p2, const Eigen::Vector4f &n2, const Eigen::Vector4i &c2, float &f1, float &f2, float &f3, float &f4, float &f5, float &f6, float &f7, float &f8, float &f9, float &f10)