38 #ifndef PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_FEATURES_HPP_
39 #define PCL_REGISTRATION_IMPL_CORRESPONDENCE_REJECTION_FEATURES_HPP_
47 unsigned int number_valid_correspondences = 0;
48 remaining_correspondences.resize (original_correspondences.size ());
50 for (
size_t i = 0; i < input_correspondences_->size (); ++i)
53 for (FeaturesMap::const_iterator it = features_map_.begin (); it != features_map_.end (); ++it)
57 if (!it->second->isCorrespondenceValid (static_cast<int> (i)))
60 remaining_correspondences[number_valid_correspondences] = original_correspondences[i];
61 ++number_valid_correspondences;
64 remaining_correspondences.resize (number_valid_correspondences);
68 template <
typename FeatureT>
inline void
72 if (features_map_.count (key) == 0)
73 features_map_[key].reset (
new FeatureContainer<FeatureT>);
74 boost::static_pointer_cast<FeatureContainer<FeatureT> > (features_map_[key])->setSourceFeature (source_feature);
81 if (features_map_.count (key) == 0)
84 return (boost::static_pointer_cast<FeatureContainer<FeatureT> > (features_map_[key])->getSourceFeature ());
88 template <
typename FeatureT>
inline void
92 if (features_map_.count (key) == 0)
93 features_map_[key].reset (
new FeatureContainer<FeatureT>);
94 boost::static_pointer_cast<FeatureContainer<FeatureT> > (features_map_[key])->setTargetFeature (target_feature);
102 typedef typename FeatureCloud::ConstPtr FeatureCloudConstPtr;
104 if (features_map_.count (key) == 0)
107 return (boost::static_pointer_cast<FeatureContainer<FeatureT> > (features_map_[key])->getTargetFeature ());
111 template <
typename FeatureT>
inline void
113 double thresh,
const std::string &key)
115 if (features_map_.count (key) == 0)
116 features_map_[key].reset (
new FeatureContainer<FeatureT>);
117 boost::static_pointer_cast<FeatureContainer<FeatureT> > (features_map_[key])->setDistanceThreshold (thresh);
124 if (features_map_.empty ())
126 FeaturesMap::const_iterator feature_itr;
127 for (feature_itr = features_map_.begin (); feature_itr != features_map_.end (); ++feature_itr)
128 if (!feature_itr->second->isValid ())
134 template <
typename FeatureT>
inline void
137 const std::string &key)
139 if (features_map_.count (key) == 0)
140 features_map_[key].reset (
new FeatureContainer<FeatureT>);
141 boost::static_pointer_cast<FeatureContainer<FeatureT> > (features_map_[key])->setFeatureRepresentation (fr);