41 #ifndef PCL_SAMPLE_CONSENSUS_MODEL_CIRCLE2D_H_
42 #define PCL_SAMPLE_CONSENSUS_MODEL_CIRCLE2D_H_
44 #include <pcl/sample_consensus/sac_model.h>
45 #include <pcl/sample_consensus/model_types.h>
59 template <
typename Po
intT>
73 typedef boost::shared_ptr<SampleConsensusModelCircle2D>
Ptr;
89 const std::vector<int> &indices,
113 tmp_inliers_ = source.tmp_inliers_;
124 Eigen::VectorXf &model_coefficients);
132 std::vector<double> &distances);
141 const double threshold,
142 std::vector<int> &inliers);
152 const double threshold);
162 const Eigen::VectorXf &model_coefficients,
163 Eigen::VectorXf &optimized_coefficients);
173 const Eigen::VectorXf &model_coefficients,
175 bool copy_data_fields =
true);
184 const Eigen::VectorXf &model_coefficients,
185 const double threshold);
196 isModelValid (
const Eigen::VectorXf &model_coefficients);
206 const std::vector<int> *tmp_inliers_;
208 #if defined BUILD_Maintainer && defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ > 3
209 #pragma GCC diagnostic ignored "-Weffc++"
220 pcl::
Functor<float>(m_data_points), model_ (model) {}
228 operator() (
const Eigen::VectorXf &x, Eigen::VectorXf &fvec)
const
230 for (
int i = 0; i < values (); ++i)
233 float xt = model_->input_->points[(*model_->tmp_inliers_)[i]].x - x[0];
234 float yt = model_->input_->points[(*model_->tmp_inliers_)[i]].y - x[1];
237 fvec[i] = sqrtf (xt * xt + yt * yt) - x[2];
244 #if defined BUILD_Maintainer && defined __GNUC__ && __GNUC__ == 4 && __GNUC_MINOR__ > 3
245 #pragma GCC diagnostic warning "-Weffc++"
250 #ifdef PCL_NO_PRECOMPILE
251 #include <pcl/sample_consensus/impl/sac_model_circle.hpp>
254 #endif //#ifndef PCL_SAMPLE_CONSENSUS_MODEL_CIRCLE2D_H_