Go to the documentation of this file.00001
00002 #ifndef vpdfl_builder_base_h
00003 #define vpdfl_builder_base_h
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007
00008
00009
00010
00011
00012
00013
00014 #include <vnl/vnl_vector.h>
00015 #include <mbl/mbl_data_wrapper.h>
00016 #include <vsl/vsl_binary_io.h>
00017 #include <vcl_vector.h>
00018 #include <vcl_string.h>
00019 #include <vcl_memory.h>
00020 #include <vcl_iosfwd.h>
00021
00022
00023
00024 class vpdfl_pdf_base;
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 class vpdfl_builder_base
00036 {
00037 public:
00038
00039 vpdfl_builder_base() {}
00040
00041
00042 virtual ~vpdfl_builder_base() {}
00043
00044
00045 virtual vpdfl_pdf_base* new_model() const = 0;
00046
00047
00048 virtual void set_min_var(double min_var) =0;
00049
00050
00051 virtual double min_var() const =0;
00052
00053
00054 virtual void build(vpdfl_pdf_base& model,
00055 const vnl_vector<double>& mean) const = 0;
00056
00057
00058 virtual void build(vpdfl_pdf_base& model,
00059 mbl_data_wrapper<vnl_vector<double> >& data) const = 0;
00060
00061
00062 virtual void weighted_build(vpdfl_pdf_base& model,
00063 mbl_data_wrapper<vnl_vector<double> >& data,
00064 const vcl_vector<double>& wts) const = 0;
00065
00066
00067 short version_no() const;
00068
00069
00070 virtual vcl_string is_a() const;
00071
00072
00073 virtual bool is_class(vcl_string const& s) const;
00074
00075
00076 virtual vpdfl_builder_base* clone() const = 0;
00077
00078
00079 virtual void print_summary(vcl_ostream& os) const = 0;
00080
00081
00082 virtual void b_write(vsl_b_ostream& bfs) const = 0;
00083
00084
00085 virtual void b_read(vsl_b_istream& bfs) = 0;
00086
00087
00088
00089 static vcl_auto_ptr<vpdfl_builder_base> new_builder_from_stream(vcl_istream &is);
00090
00091
00092
00093 virtual void config_from_stream(vcl_istream & is);
00094
00095
00096
00097
00098 static vcl_auto_ptr<vpdfl_builder_base> new_pdf_builder_from_stream(vcl_istream &);
00099 };
00100
00101
00102
00103
00104
00105
00106
00107
00108
00109
00110 void vsl_add_to_binary_loader(const vpdfl_builder_base& b);
00111
00112
00113 void vsl_b_write(vsl_b_ostream& bfs, const vpdfl_builder_base& b);
00114
00115
00116 void vsl_b_read(vsl_b_istream& bfs, vpdfl_builder_base& b);
00117
00118
00119 void vsl_print_summary(vcl_ostream& os,const vpdfl_builder_base& b);
00120
00121
00122 void vsl_print_summary(vcl_ostream& os,const vpdfl_builder_base* b);
00123
00124
00125 vcl_ostream& operator<<(vcl_ostream& os,const vpdfl_builder_base& b);
00126
00127
00128 vcl_ostream& operator<<(vcl_ostream& os,const vpdfl_builder_base* b);
00129
00130 #endif // vpdfl_builder_base_h