00001 // This is oxl/mvl/PairMatchSetLineSeg.h 00002 #ifndef PairMatchSetLineSeg_h_ 00003 #define PairMatchSetLineSeg_h_ 00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE 00005 #pragma interface 00006 #endif 00007 //: 00008 // \file 00009 // \brief Matches between homogeneous line segments 00010 // 00011 // PairMatchSetLineSeg holds matches between homogeneous 00012 // line segments. This should be rewritten to use the original 00013 // IULine*, but this is efficient. 00014 // 00015 // \author 00016 // Andrew W. Fitzgibbon, Oxford RRG, 09 Aug 96 00017 // 00018 //----------------------------------------------------------------------------- 00019 00020 #include <mvl/PairMatchSet.h> 00021 class LineSegSet; 00022 class HomgLineSeg2D; 00023 00024 class PairMatchSetLineSeg : public PairMatchSet 00025 { 00026 LineSegSet* linesegs1_; 00027 LineSegSet* linesegs2_; 00028 00029 public: 00030 // Constructors/Destructors-------------------------------------------------- 00031 PairMatchSetLineSeg(); 00032 PairMatchSetLineSeg(LineSegSet& corners1, LineSegSet& corners2); 00033 ~PairMatchSetLineSeg(); 00034 00035 // Data Access--------------------------------------------------------------- 00036 LineSegSet* get_linesegs1() const { return linesegs1_; } 00037 LineSegSet* get_linesegs2() const { return linesegs2_; } 00038 00039 void extract_matches(vcl_vector<HomgLineSeg2D>& l1, vcl_vector<HomgLineSeg2D>& l2) const; 00040 00041 // Data Control-------------------------------------------------------------- 00042 void set(LineSegSet* lines1, LineSegSet* lines2); 00043 }; 00044 00045 #endif // PairMatchSetLineSeg_h_