contrib/gel/pop/pop_manager.h

Go to the documentation of this file.
00001 // This is gel/pop/pop_manager.h
00002 #ifndef pop_manager_h_
00003 #define pop_manager_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 // \brief this class keeps track of all parameterized objects.
00010 //
00011 // \author
00012 //            Peter Tu April 2003
00013 //            General Electric
00014 //
00015 //-------------------------------------------------------------------------------
00016 #include <pop/pop_parameter.h>
00017 #include <pop/pop_object.h>
00018 #include <vcl_vector.h>
00019 #include <vcl_list.h>
00020 #include <pop/pop_geometric_cost_function.h>
00021 
00022 //: A class for keeping track of parameterized objects
00023 class pop_manager
00024 {
00025  public:
00026   //: constructor
00027   pop_manager();
00028 
00029   //: destructor
00030   ~pop_manager();
00031 
00032   //: create a new parameter
00033   pop_parameter* new_parameter();
00034 
00035   //: create a vector of parameters
00036   vcl_vector<pop_parameter*> new_parameters(int num_param);
00037 
00038   //: add a new parameter object
00039   void add_object(pop_object *obj);
00040 
00041   //: update all the objects
00042   void update();
00043 
00044   //: get a vector of changeable parameters
00045   vcl_vector<pop_parameter*> get_changeable_parameters();
00046 
00047   //: optimize the parameters using Levenberg Marquardt
00048   void optimize(vcl_vector<pop_geometric_cost_function*> &obs_costs);
00049 
00050  private:
00051   vcl_list<pop_parameter*> params_;
00052   vcl_list<pop_object*> objects_;
00053 };
00054 
00055 #endif // pop_manager_h_

Generated on Sat Sep 6 05:15:24 2008 for contrib/gel/pop by  doxygen 1.5.1