00001 #ifndef Impala_Core_Tracking_TrackerFactory_h 00002 #define Impala_Core_Tracking_TrackerFactory_h 00003 00004 #include "Util/PropertySet.h" 00005 #include "Core/Tracking/TrackerBackFore.h" 00006 #include "Core/Tracking/TrackerKalmanAppearance.h" 00007 00008 namespace Impala 00009 { 00010 namespace Core 00011 { 00012 namespace Tracking 00013 { 00014 00021 class TrackerFactory 00022 { 00023 public: 00024 static Tracker* CreateTracker(CmdOptions& options) 00025 { 00026 std::string name = options.GetString("tracker"); 00027 if(name == "fore_back") 00028 { 00029 return new TrackerBackFore(options); 00030 } 00031 if(name == "appearance_kalman") 00032 { 00033 return new TrackerKalmanAppearance; 00034 } 00035 return new TrackerGeneralised; 00036 } 00037 }; 00038 00039 } //namespace Tracking 00040 } //namespace Core 00041 } //namespace Impala 00042 00043 #endif Impala_Core_Tracking_TrackerFactory_h