contrib/rpl/rgrl/rgrl_feature_point_region.h
Go to the documentation of this file.
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_