40#ifndef PCL_FEATURES_IMPL_PPF_H_
41#define PCL_FEATURES_IMPL_PPF_H_
43#include <pcl/features/ppf.h>
44#include <pcl/features/pfh.h>
45#include <pcl/features/pfh_tools.h>
48template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT>
60template <
typename Po
intInT,
typename Po
intNT,
typename Po
intOutT>
void
64 output.resize (indices_->size () * input_->size ());
72 std::size_t i = (*indices_)[
index_i];
73 for (std::size_t j = 0 ; j < input_->size (); ++j)
83 p.f1, p.f2, p.f3, p.f4))
103 PCL_ERROR (
"[pcl::%s::computeFeature] Computing pair feature vector between points %u and %u went wrong.\n", getClassName ().c_str (), i, j);
104 p.f1 = p.f2 = p.f3 = p.f4 = p.alpha_m = std::numeric_limits<float>::quiet_NaN ();
105 output.is_dense =
false;
112 p.f1 = p.f2 = p.f3 = p.f4 = p.alpha_m = std::numeric_limits<float>::quiet_NaN ();
113 output.is_dense =
false;
116 output[index_i*input_->size () + j] = p;
121#define PCL_INSTANTIATE_PPFEstimation(T,NT,OutT) template class PCL_EXPORTS pcl::PPFEstimation<T,NT,OutT>;
Iterator class for point clouds with or without given indices.
std::size_t size() const
Size of the range the iterator is going through.
Feature represents the base feature class.
std::string feature_name_
The feature name.
Class that calculates the "surflet" features for each pair in the given pointcloud.
PPFEstimation()
Empty Constructor.
PCL_EXPORTS bool computePairFeatures(const Eigen::Vector4f &p1, const Eigen::Vector4f &n1, const Eigen::Vector4f &p2, const Eigen::Vector4f &n2, float &f1, float &f2, float &f3, float &f4)
Compute the 4-tuple representation containing the three angles and one distance between two points re...