00001 #ifndef rgrl_feature_point_region_h_ 00002 #define rgrl_feature_point_region_h_ 00003 //: 00004 // \file 00005 // \author Gehua yang 00006 // \date Oct 2004 00007 // \verbatim 00008 // Modifications 00009 // Nov 2008 J Becker: Added a clone function. 00010 // \endverbatim 00011 00012 #include <rgrl/rgrl_feature_region.h> 00013 #include <rgrl/rgrl_feature_point.h> 00014 00015 //: Represent a point in space. 00016 // 00017 // This type of feature can be used to represent simple point-to-point 00018 // correspondences. 00019 // 00020 class rgrl_feature_point_region 00021 : public rgrl_feature_region, public rgrl_feature_point 00022 { 00023 public: 00024 //: Constructor to initialize feature_point_region location that has an associated radius. 00025 rgrl_feature_point_region( vnl_vector<double> const& loc, double radius = 0); 00026 00027 //: The result is a rgrl_feature_point_region, without transforming the radius 00028 rgrl_feature_sptr 00029 transform( rgrl_transformation const& xform ) const; 00030 00031 // Defines type-related functions 00032 rgrl_type_macro( rgrl_feature_point_region, rgrl_feature_point ); 00033 00034 //: get pixels coordinates within the region 00035 virtual void 00036 generate_pixel_coordinates( vnl_vector< double > const& spacing_ratio ); 00037 00038 //: make a clone copy 00039 virtual rgrl_feature_sptr clone() const; 00040 00041 private: 00042 //: 00043 // Create an uninitialized feature with enough space to store a dim 00044 // dimensional feature. The error projection matrix is initialized 00045 // to the identity. 00046 // 00047 rgrl_feature_point_region( unsigned dim ); 00048 00049 protected: 00050 double radius_; 00051 }; 00052 00053 #endif // rgrl_feature_point_region_h_