27 #include <vnl/vnl_vector.h>
28 #include <vnl/vnl_least_squares_function.h>
34 a_shape(
int n_parameters):
P_(0.99),
verbose_(false) {verysmall_=1000.;
para_.set_size(n_parameters);srand(time(NULL));};
36 virtual const std::string
classname()
const {
return "a_shape";}
37 static const std::string
help();
40 double P()
const {
return P_;}
46 virtual void random_hint(
const std::vector<a_point>& pts) = 0;
48 double dist_cloud(
const std::vector<a_point>& pts);
51 int threshold_cloud(
const std::vector<a_point>& pts, std::vector<a_point>& pts2);
55 virtual void fit_cloud(std::vector<a_point>& pts,
short nl=1) = 0;
57 void para(
const int i,
const double val) {
para_[i] = val;}
double rms_dist_cloud(const std::vector< a_point > &pts)
vnl_vector< double > para_
double dist_cloud(const std::vector< a_point > &pts)
void export_outliers(const std::vector< a_point > &pts)
virtual void random_hint(const std::vector< a_point > &pts)=0
int threshold_cloud(const std::vector< a_point > &pts, std::vector< a_point > &pts2)
unsigned int npara() const
virtual void fit_cloud(std::vector< a_point > &pts, short nl=1)=0
double average_dist_cloud(const std::vector< a_point > &pts)
a_shape(int n_parameters)
friend std::ostream & operator<<(std::ostream &o, const a_shape &s)
void fit_cloud(const std::vector< a_point > &pts, vnl_least_squares_function &fn)
static const std::string help()
void para(const int i, const double val)
virtual a_point closest_point(const a_point p) const =0
virtual double dist_point(const a_point p) const =0
vnl_vector< double > getparameters() const
int best_fitting_cloud(const std::vector< a_point > &pts, std::vector< a_point > &pts2)
virtual const std::string classname() const
void export_inliers(const std::vector< a_point > &pts)
double v(const uint32_t step, const uint32_t n)