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_