contrib/oxl/mvl/ProjStructure.h
Go to the documentation of this file.
00001 // This is oxl/mvl/ProjStructure.h
00002 #ifndef ProjStructure_h_
00003 #define ProjStructure_h_
00004 #ifdef VCL_NEEDS_PRAGMA_INTERFACE
00005 #pragma interface
00006 #endif
00007 //:
00008 //  \file
00009 // \author awf@robots.ox.ac.uk
00010 // \date   17 Mar 00
00011 
00012 #include <vcl_vector.h>
00013 
00014 #include <mvl/ImageMetric.h>
00015 #include <mvl/PMatrix.h>
00016 #include <mvl/HomgPoint2D.h>
00017 #include <mvl/HomgPoint3D.h>
00018 
00019 class HomgInterestPointSet;
00020 
00021 //: Not documented FIXME
00022 class ProjStructure
00023 {
00024  public:
00025 
00026   vcl_vector<HomgInterestPointSet*> points_2d_;
00027   vcl_vector<PMatrix> P_;
00028   vcl_vector<HomgPoint3D> X_;
00029   ImageMetric const* metric_;
00030 
00031   ProjStructure();
00032 
00033   ImageMetric const* get_image_metric(int) { return metric_; }
00034 
00035   PMatrix& P(int i) { return P_[i]; }
00036   PMatrix const& P(int i) const { return P_[i]; }
00037 
00038   HomgPoint3D& X(int i) { return X_[i]; }
00039   HomgPoint3D const& X(int i) const { return X_[i]; }
00040 
00041   int get_min_view() const { return 0; }
00042   int get_max_view() const { return P_.size() - 1; }
00043   int npoints() const { return X_.size(); }
00044 
00045   HomgPoint2D& get_point_2d(int view, int c);
00046   int get_point_match(int view, int c);
00047 };
00048 
00049 #endif // ProjStructure_h_