Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef VISFINDER_H
00027 #define VISFINDER_H
00028
00029 #include <string>
00030 #include <vector>
00031
00032 #include "AlgorithmSelector.h"
00033 #include "RelPoseFactory.h"
00034 #include "AttentionManager.h"
00035 #include "VisLearner.h"
00036 #include "TrackAlgorithm.h"
00037 #include "PerceptionPrimitive.h"
00038
00039 #define XML_NODE_VISFINDER "VisualFinder"
00040
00041 namespace cop
00042 {
00047 class VisFinder
00048 {
00049
00050 public:
00051
00052
00053
00054
00067 VisFinder ( XMLTag* configFile, ImageInputSystem* imageSystem, SignatureDB* db, AttentionManager* manager, VisLearner* visLearner
00068 #ifdef LOGFILE
00069 , LogFile& log
00070 #endif
00071 );
00072
00076 virtual ~VisFinder ( );
00077
00078
00079
00080 VisFinder& operator=(VisFinder&){throw "Error";}
00090 virtual SignatureLocations_t Locate (PossibleLocations_t* lastKnownPoses, PerceptionPrimitive& object, int &numOfObjects);
00091
00098 bool GetPlaneClusterCall(PossibleLocations_t* poses, RelPose*, PerceptionPrimitive& obj, const std::vector<Sensor*> &sensors);
00099
00105 virtual void StartTrack (PerceptionPrimitive& object, RelPose* pose);
00110 virtual void StopTrack (Signature& object);
00111
00112
00122 virtual RelPose* RelTwoObjects (const RelPose& pose, Signature& sig1, Signature& sig2);
00126 virtual XMLTag* Save();
00132 void AddAlgorithm(Algorithm<std::vector<RelPose*> >* alg);
00136 int CountAlgorithms(){return m_selLocate.CountAlgorithms();}
00137
00138 const AlgorithmSelector<std::vector<RelPose*> >& GetAlgorithmSelection(){return m_selLocate;}
00139 private:
00143 AlgorithmSelector<std::vector<RelPose*> > m_selLocate;
00144 std::map<int, TrackAlgorithm*> m_runningTracks;
00145 public:
00146 ImageInputSystem* m_imageSys;
00147 SignatureDB* m_sigdb;
00148 VisLearner* m_visLearner;
00149 AttentionManager* m_attentionMan;
00150
00151
00152 };
00153 }
00154 #endif // VISFINDER_H