00001
00002
00003 #ifndef _IFMANAGER_HPP
00004 #define _IFMANAGER_HPP
00005
00006 #include "kernel/jafarException.hpp"
00007 #include "fdetect/InterestFeature.hpp"
00008 #include "gfm/MatchingResult.hpp"
00009 #include "premodeler/engine.hpp"
00010
00011 namespace jafar {
00012
00013 namespace premodeler {
00017 struct ViewIF {
00018 ViewIF(int _vIndex = -1,
00019 fdetect::InterestFeature* _vIf = NULL) :
00020 vIndex(_vIndex), vIf(_vIf)
00021 {
00022 }
00024 int vIndex;
00026 fdetect::InterestFeature* vIf;
00027 };
00028
00034 typedef std::pair <unsigned int, std::vector<ViewIF*> > IFList;
00035 typedef std::map <unsigned int, std::vector<ViewIF*> > IFLists;
00036 typedef std::map <unsigned int, std::vector<ViewIF*> >::iterator IFListsIterator;
00037
00043 class IFManager {
00044
00045 private:
00047 premodeler::SequenceMR smr;
00049 premodeler::IFLists m_ifLists;
00050
00051 public:
00053 IFManager();
00055 IFManager(premodeler::SequenceMR _smr);
00057 ~IFManager();
00059 inline premodeler::IFLists getGTracker() const {
00060 return m_ifLists;
00061 };
00063 void setSMResult(premodeler::SequenceMR _smr);
00066 void load();
00068 void print();
00070 void clean(const unsigned int &_threshold = 3);
00071
00072 };
00073
00074 }
00075
00076 }
00077
00078 #endif