1 // This is oxl/mvl/PairMatchSetLineSeg.cxx 2 //: 3 // \file 4 5 #include "PairMatchSetLineSeg.h" 6 7 #include <mvl/MatchSet.h> 8 #include <mvl/LineSegSet.h> 9 PairMatchSetLineSeg()10PairMatchSetLineSeg::PairMatchSetLineSeg() 11 { 12 linesegs1_ = nullptr; 13 linesegs2_ = nullptr; 14 } 15 PairMatchSetLineSeg(LineSegSet & linesegs1,LineSegSet & linesegs2)16PairMatchSetLineSeg::PairMatchSetLineSeg(LineSegSet& linesegs1, LineSegSet& linesegs2): 17 PairMatchSet(linesegs1.size()) 18 { 19 linesegs1_ = &linesegs1; 20 linesegs2_ = &linesegs2; 21 } 22 23 PairMatchSetLineSeg::~PairMatchSetLineSeg() = default; 24 25 //: Extract the point vectors for only the valid matches. extract_matches(std::vector<HomgLineSeg2D> & linesegs1,std::vector<HomgLineSeg2D> & linesegs2) const26void PairMatchSetLineSeg::extract_matches(std::vector <HomgLineSeg2D>& linesegs1, 27 std::vector <HomgLineSeg2D>& linesegs2) const 28 { 29 unsigned n = count(); 30 linesegs1.resize(n); 31 linesegs2.resize(n); 32 int i = 0; 33 for (PairMatchSet::iterator match = *this; match; match.next()) { 34 linesegs1[i] = linesegs1_->get_homg(match.get_i1()); 35 linesegs2[i] = linesegs2_->get_homg(match.get_i2()); 36 ++i; 37 } 38 } 39 40 41 //: Set the pair of LineSegSets to which matches refer. set(LineSegSet * linesegs1,LineSegSet * linesegs2)42void PairMatchSetLineSeg::set(LineSegSet* linesegs1, LineSegSet* linesegs2) 43 { 44 linesegs1_ = linesegs1; 45 linesegs2_ = linesegs2; 46 set_size(linesegs1_->size()); 47 } 48