1 // This is oxl/mvl/ProjStructure.h
2 #ifndef ProjStructure_h_
3 #define ProjStructure_h_
4 //:
5 //  \file
6 // \author awf@robots.ox.ac.uk
7 // \date   17 Mar 00
8 
9 #include <iostream>
10 #include <vector>
11 #ifdef _MSC_VER
12 #  include <vcl_msvc_warnings.h>
13 #endif
14 
15 #include <mvl/ImageMetric.h>
16 #include <mvl/PMatrix.h>
17 #include <mvl/HomgPoint2D.h>
18 #include <mvl/HomgPoint3D.h>
19 
20 class HomgInterestPointSet;
21 
22 //: Not documented FIXME
23 class ProjStructure
24 {
25  public:
26 
27   std::vector<HomgInterestPointSet*> points_2d_;
28   std::vector<PMatrix> P_;
29   std::vector<HomgPoint3D> X_;
30   ImageMetric const* metric_;
31 
32   ProjStructure();
33 
get_image_metric(int)34   ImageMetric const *get_image_metric(int) const { return metric_; }
35 
P(int i)36   PMatrix& P(int i) { return P_[i]; }
P(int i)37   PMatrix const& P(int i) const { return P_[i]; }
38 
X(int i)39   HomgPoint3D& X(int i) { return X_[i]; }
X(int i)40   HomgPoint3D const& X(int i) const { return X_[i]; }
41 
get_min_view()42   int get_min_view() const { return 0; }
get_max_view()43   int get_max_view() const { return P_.size() - 1; }
npoints()44   int npoints() const { return X_.size(); }
45 
46   HomgPoint2D& get_point_2d(int view, int c);
47   int get_point_match(int view, int c);
48 };
49 
50 #endif // ProjStructure_h_
51