VisFinder.h
Go to the documentation of this file.
00001 
00002 /*
00003  * Copyright (C) 2009 by Ulrich Friedrich Klank <klank@in.tum.de>
00004  *
00005  * This program is free software; you can redistribute it and/or modify
00006  * it under the terms of the GNU General Public License as published by
00007  * the Free Software Foundation; either version 3 of the License, or
00008  * (at your option) any later version.
00009  *
00010  * This program is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013  * GNU General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU General Public License
00016  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00017  */
00018 
00019 
00020 /************************************************************************
00021                         VisFinder.h - Copyright klank
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     // Constructors/Destructors
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
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines


cognitive_perception
Author(s): Ulrich F Klank
autogenerated on Thu May 23 2013 07:38:35