00001 #ifndef msm_no_limiter_h_ 00002 #define msm_no_limiter_h_ 00003 //: 00004 // \file 00005 // \author Tim Cootes 00006 // \brief No limits applied to parameters 00007 00008 #include <msm/msm_param_limiter.h> 00009 #include <vnl/vnl_vector.h> 00010 #include <vcl_iosfwd.h> 00011 00012 //: No limits applied to parameters 00013 class msm_no_limiter : public msm_param_limiter 00014 { 00015 public: 00016 msm_no_limiter(); 00017 00018 virtual ~msm_no_limiter() {} 00019 00020 //: Define variance on each parameter. Does nothing. 00021 virtual void set_param_var(const vnl_vector<double>& v); 00022 00023 //: Set the limits so that a given proportion pass 00024 // Does nothing. 00025 virtual void set_acceptance(double prop, unsigned n_modes=0); 00026 00027 //: Apply limit to parameter vector b. Does nothing. 00028 virtual void apply_limit(vnl_vector<double>& b) const; 00029 00030 //: Define number of SDs to limit at 00031 void set_n_sds(double n_sds); 00032 00033 //: Name of the class 00034 virtual vcl_string is_a() const; 00035 00036 //: Create a copy on the heap and return base class pointer 00037 virtual msm_param_limiter* clone() const; 00038 00039 //: Print class to os 00040 virtual void print_summary(vcl_ostream& os) const; 00041 00042 //: Save class to binary file stream 00043 virtual void b_write(vsl_b_ostream& bfs) const; 00044 00045 //: Load class from binary file stream 00046 virtual void b_read(vsl_b_istream& bfs); 00047 }; 00048 00049 #endif // msm_no_limiter_h_