00001
00002 #ifndef gkll_multi_view_data_
00003 #define gkll_multi_view_data_
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #include <vcl_vector.h>
00017 #include <mvl/NViewMatches.h>
00018 #include <vbl/vbl_ref_count.h>
00019 #include <vcl_iosfwd.h>
00020
00021 template <class T>
00022 class gkll_multi_view_data : public vbl_ref_count
00023 {
00024 public:
00025 gkll_multi_view_data();
00026 gkll_multi_view_data(int nbviews);
00027 gkll_multi_view_data(gkll_multi_view_data<T> const& x)
00028 : vbl_ref_count(), nbviews_(x.nbviews_), nbfeatures_(x.nbfeatures_),
00029 size_vect_ft_(x.size_vect_ft_), matchnum_(x.matchnum_),
00030 closed_track_(x.closed_track_), MVM(x.MVM), all_pts(x.all_pts) {}
00031 ~gkll_multi_view_data();
00032
00033 void new_track();
00034 void close_track();
00035
00036 void set_params(int nbviews);
00037 void set(int view_num,int matchnum,T);
00038 void set(int view_num,T);
00039
00040 void get(int, vcl_vector<T> &);
00041 void get(int, int, vcl_vector<T> &,
00042 vcl_vector<T> &);
00043 void get(int, int, int, vcl_vector<T> &,
00044 vcl_vector<T> &,
00045 vcl_vector<T> &);
00046
00047 bool get_pred_match(int view_num,T obj,T & res);
00048 int get_nb_views() { return nbviews_; }
00049
00050 void remove(int view_num, T match);
00051
00052 vcl_ostream& print(vcl_ostream& str);
00053
00054 private:
00055 int nbviews_;
00056 int nbfeatures_;
00057 int size_vect_ft_;
00058 int matchnum_;
00059 bool closed_track_;
00060
00061 NViewMatches MVM;
00062 vcl_vector<T> all_pts;
00063 };
00064
00065 #endif // gkll_multi_view_data_