contrib/oxl/mvl/HomgInterestPoint.h
Go to the documentation of this file.
00001 // This is oxl/mvl/HomgInterestPoint.h
00002 #ifndef HomgInterestPoint_h_
00003 #define HomgInterestPoint_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 // \file
00009 // \brief Homogeneous interest point/corner
00010 //
00011 //    HomgInterestPoint is a representation of an interest point
00012 //    resulting from feature detection.  At Oxford this generally
00013 //    means a Harris corner.
00014 //
00015 // \author
00016 //     Andrew W. Fitzgibbon, Oxford RRG, 17 Aug 96
00017 //
00018 // \verbatim
00019 // Modifications:
00020 //   Peter Vanroose - 22 oct.02 - added vgl_homg_point_2d interface
00021 // \endverbatim
00022 //-----------------------------------------------------------------------------
00023 
00024 #include <vcl_iosfwd.h>
00025 #include <vnl/vnl_int_2.h>
00026 #include <mvl/HomgPoint2D.h>
00027 #include <vgl/vgl_homg_point_2d.h>
00028 
00029 class HomgMetric;
00030 
00031 class HomgInterestPoint
00032 {
00033   // Data Members--------------------------------------------------------------
00034  public:
00035   HomgPoint2D  homg_;
00036   vnl_double_2 double2_;
00037   vnl_int_2    int2_;
00038   float        mean_intensity_;
00039 
00040  public:
00041   HomgInterestPoint();
00042   HomgInterestPoint(double x, double y, float mean_intensity = 0.0F);
00043   HomgInterestPoint(double x, double y, const HomgMetric& c, float mean_intensity = 0.0F);
00044   HomgInterestPoint(const HomgPoint2D& h, const HomgMetric& c, float mean_intensity = 0.0F);
00045   HomgInterestPoint(vgl_homg_point_2d<double> const& h, const HomgMetric& c, float mean_intensity = 0.0F);
00046   HomgInterestPoint(const HomgInterestPoint&); // copy constructor
00047   HomgInterestPoint& operator=(const HomgInterestPoint&); // assignment
00048   ~HomgInterestPoint();
00049 
00050   friend bool operator == (const HomgInterestPoint&, const HomgInterestPoint&);
00051 };
00052 
00053 vcl_ostream& operator << (vcl_ostream& s, const HomgInterestPoint&);
00054 
00055 #endif // HomgInterestPoint_h_