39 #ifndef PCL_PPF_REGISTRATION_H_
40 #define PCL_PPF_REGISTRATION_H_
44 #include <boost/unordered_map.hpp>
56 struct HashKeyStruct :
public std::pair <int, std::pair <int, std::pair <int, int> > >
61 this->second.first = b;
62 this->second.second.first = c;
63 this->second.second.second = d;
68 typedef boost::shared_ptr<PPFHashMapSearch>
Ptr;
75 PPFHashMapSearch (
float angle_discretization_step = 12.0f / 180.0f * static_cast<float> (M_PI),
76 float distance_discretization_step = 0.01f)
79 , internals_initialized_ (false)
80 , angle_discretization_step_ (angle_discretization_step)
81 , distance_discretization_step_ (distance_discretization_step)
101 nearestNeighborSearch (
float &f1,
float &f2,
float &f3,
float &f4,
102 std::vector<std::pair<size_t, size_t> > &indices);
123 bool internals_initialized_;
125 float angle_discretization_step_, distance_discretization_step_;
140 template <
typename Po
intSource,
typename Po
intTarget>
181 scene_reference_point_sampling_rate_ (5),
182 clustering_position_diff_threshold_ (0.01f),
183 clustering_rotation_diff_threshold_ (20.0f / 180.0f * static_cast<float> (M_PI))
244 computeTransformation (
PointCloudSource &output,
const Eigen::Matrix4f& guess);
251 unsigned int scene_reference_point_sampling_rate_;
255 float clustering_position_diff_threshold_, clustering_rotation_diff_threshold_;
263 poseWithVotesCompareFunction (
const PoseWithVotes &a,
264 const PoseWithVotes &b);
269 clusterVotesCompareFunction (
const std::pair<size_t, unsigned int> &a,
270 const std::pair<size_t, unsigned int> &b);
281 posesWithinErrorBounds (Eigen::Affine3f &pose1,
282 Eigen::Affine3f &pose2);
288 #endif // PCL_PPF_REGISTRATION_H_