Go to the documentation of this file.00001
00002 #include "vifa_int_face_attr_common_params.h"
00003
00004
00005
00006 #include <vcl_iostream.h>
00007 #include <vcl_sstream.h>
00008
00009
00010 vifa_int_face_attr_common_params::
00011 vifa_int_face_attr_common_params(vdgl_fit_lines_params* fitter_params,
00012 vifa_group_pgram_params* gpp_s,
00013 vifa_group_pgram_params* gpp_w,
00014 vifa_coll_lines_params* cpp,
00015 vifa_norm_params* np
00016 )
00017 {
00018 init_params(fitter_params,
00019 gpp_s,
00020 gpp_w,
00021 cpp,
00022 np);
00023 }
00024
00025 vifa_int_face_attr_common_params::
00026 vifa_int_face_attr_common_params(const vifa_int_face_attr_common_params& ifap)
00027 : gevd_param_mixin(), vul_timestamp(), vbl_ref_count()
00028 {
00029 init_params(ifap.fitter_params_.ptr(),
00030 ifap.gpp_s_.ptr(),
00031 ifap.gpp_w_.ptr(),
00032 ifap.cpp_.ptr(),
00033 ifap.np_.ptr());
00034 }
00035
00036 vifa_int_face_attr_common_params::
00037 ~vifa_int_face_attr_common_params()
00038 {
00039
00040 }
00041
00042
00043 void vifa_int_face_attr_common_params::
00044 set_params(const vifa_int_face_attr_common_params& ifap)
00045 {
00046 init_params(ifap.fitter_params_.ptr(),
00047 ifap.gpp_s_.ptr(),
00048 ifap.gpp_w_.ptr(),
00049 ifap.cpp_.ptr(),
00050 ifap.np_.ptr());
00051 }
00052
00053
00054 bool vifa_int_face_attr_common_params::SanityCheck()
00055 {
00056 vcl_stringstream msg;
00057 bool valid;
00058
00059 if (!fitter_params_.ptr() ||
00060 !gpp_s_.ptr() ||
00061 !gpp_w_.ptr() ||
00062 !cpp_.ptr())
00063 {
00064 msg << "ERROR: {FitLines, GroupParallelogram, CollinearLines} params not set." << vcl_ends;
00065 valid = false;
00066 }
00067 else
00068 {
00069
00070 valid = fitter_params_->SanityCheck() &&
00071 gpp_s_->SanityCheck() &&
00072 gpp_w_->SanityCheck() &&
00073 cpp_->SanityCheck();
00074 }
00075
00076 SetErrorMsg(msg.str().c_str());
00077 return valid;
00078 }
00079
00080 void vifa_int_face_attr_common_params::
00081 print_info(void)
00082 {
00083 vcl_cout << "vifa_int_face_attr_common_params:\n"
00084 << " line fitting params: ";
00085 if (fitter_params_.ptr())
00086 vcl_cout << *fitter_params_;
00087 else
00088 vcl_cout << "NULL\n";
00089 vcl_cout << " strong group parallelogram params: ";
00090 if (gpp_s_.ptr())
00091 gpp_s_->print_info();
00092 else
00093 vcl_cout << "NULL\n";
00094 vcl_cout << " weak group parallelogram params: ";
00095 if (gpp_w_.ptr())
00096 gpp_w_->print_info();
00097 else
00098 vcl_cout << "NULL\n";
00099 vcl_cout << " collinear lines params: ";
00100 if (cpp_.ptr())
00101 cpp_->print_info();
00102 else
00103 vcl_cout << "NULL\n";
00104 vcl_cout << " normalization params: ";
00105 if (np_.ptr())
00106 np_->print_info();
00107 else
00108 vcl_cout << "NULL\n";
00109 }
00110
00111
00112 void vifa_int_face_attr_common_params::
00113 init_params(vdgl_fit_lines_params* fitter_params,
00114 vifa_group_pgram_params* gpp_s,
00115 vifa_group_pgram_params* gpp_w,
00116 vifa_coll_lines_params* cpp,
00117 vifa_norm_params* np
00118 )
00119 {
00120 if (fitter_params)
00121 fitter_params_ = new vdgl_fit_lines_params(*fitter_params);
00122 else
00123 fitter_params_ = new vdgl_fit_lines_params( 6);
00124 if (gpp_s)
00125 gpp_s_ = new vifa_group_pgram_params(*gpp_s);
00126 else
00127 gpp_s_ = new vifa_group_pgram_params( 5.0f);
00128 if (gpp_w)
00129 gpp_w_ = new vifa_group_pgram_params(*gpp_w);
00130 else
00131 gpp_w_ = new vifa_group_pgram_params( 20.0f);
00132 if (cpp)
00133 cpp_ = new vifa_coll_lines_params(*cpp);
00134 else
00135 cpp_ = new vifa_coll_lines_params();
00136 if (np)
00137 np_ = new vifa_norm_params(*np);
00138 else
00139 np_ = new vifa_norm_params();
00140 }
00141
00142
00143
00144 void vifa_int_face_attr_common_params::
00145 init_params(const vdgl_fit_lines_params& fitter_params,
00146 const vifa_group_pgram_params& gpp_s,
00147 const vifa_group_pgram_params& gpp_w,
00148 const vifa_coll_lines_params& cpp,
00149 const vifa_norm_params& np
00150 )
00151 {
00152 fitter_params_ = new vdgl_fit_lines_params(fitter_params);
00153 gpp_s_ = new vifa_group_pgram_params(gpp_s);
00154 gpp_w_ = new vifa_group_pgram_params(gpp_w);
00155 cpp_ = new vifa_coll_lines_params(cpp);
00156 np_ = new vifa_norm_params(np);
00157 }