00001 #ifndef rgrl_est_affine_h_ 00002 #define rgrl_est_affine_h_ 00003 //: 00004 // \file 00005 // \author Amitha Perera 00006 // \date Feb 2003 00007 00008 #include "rgrl_estimator.h" 00009 00010 //: Affine transform estimator 00011 // 00012 class rgrl_est_affine 00013 : public rgrl_linear_estimator 00014 { 00015 public: 00016 //: Default constructor 00017 // 00018 // Does nothing. This constructor is adequate for algorithms that 00019 // call \a estimate(.) function only. An example of the algorithm is 00020 // the rgrl_feature_based_registration. 00021 rgrl_est_affine(){} 00022 00023 // Constructor which takes the dimension of the dataset that the 00024 // estimator will be applied on. 00025 // 00026 rgrl_est_affine( unsigned int dimension ); 00027 00028 //: Estimates an affine transform. 00029 // 00030 // The return pointer is to a rgrl_trans_affine object. 00031 // 00032 // \sa rgrl_estimator::estimate 00033 // 00034 rgrl_transformation_sptr 00035 estimate( rgrl_set_of<rgrl_match_set_sptr> const& matches, 00036 rgrl_transformation const& cur_transform ) const; 00037 00038 00039 //: Estimates an affine transform. 00040 // 00041 // The return pointer is to a rgrl_trans_affine object. 00042 // 00043 // \sa rgrl_estimator::estimate 00044 // 00045 rgrl_transformation_sptr 00046 estimate( rgrl_match_set_sptr matches, 00047 rgrl_transformation const& cur_transform ) const; 00048 00049 //: Type of transformation estimated by this estimator. 00050 const vcl_type_info& transformation_type() const; 00051 00052 // Defines type-related functions 00053 rgrl_type_macro( rgrl_est_affine, rgrl_linear_estimator ) 00054 }; 00055 00056 #endif // rgrl_est_affine_h_