00001 /* 00002 * Copyright (C) 2009 by Ulrich Friedrich Klank <klank@in.tum.de> 00003 * 00004 * This program is free software; you can redistribute it and/or modify 00005 * it under the terms of the GNU General Public License as published by 00006 * the Free Software Foundation; either version 3 of the License, or 00007 * (at your option) any later version. 00008 * 00009 * This program is distributed in the hope that it will be useful, 00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00012 * GNU General Public License for more details. 00013 * 00014 * You should have received a copy of the GNU General Public License 00015 * along with this program. If not, see <http://www.gnu.org/licenses/>. 00016 */ 00017 00018 00019 /************************************************************************ 00020 TrackAlgorithm.h - Copyright klank 00021 00022 **************************************************************************/ 00023 00024 00025 #ifndef TRACKALGORITHM_H 00026 #define TRACKALGORITHM_H 00027 00028 #include "Algorithm.h" 00029 00030 #include <string> 00031 #include <vector> 00032 00033 #include "ImageInputSystem.h" 00034 #include "PerceptionPrimitive.h" 00035 00036 namespace cop 00037 { 00042 class TrackAlgorithm 00043 { 00044 public: 00048 TrackAlgorithm (PerceptionPrimitive& prim, Evaluator* eval, Algorithm<std::vector<RelPose*> > *alg, ImageInputSystem* imageSys); 00049 00053 virtual ~TrackAlgorithm ( ); 00054 00055 XMLTag* Save(); 00059 void threadfunc(); 00063 volatile bool m_Running; 00064 private: 00068 Algorithm<std::vector<RelPose* > > *m_alg; 00072 PerceptionPrimitive& m_curPrim; 00076 ImageInputSystem* m_imageSys; 00080 Evaluator* m_eval; 00081 private: 00082 #ifdef BOOST_THREAD 00083 boost::thread* m_trackingThread; 00084 #else 00085 #endif 00086 TrackAlgorithm& operator=(TrackAlgorithm&){throw "private";} 00087 00088 }; 00089 } 00090 #endif // TRACKALGORITHM_H