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
00027
00028
00029
00030 #ifndef __ErrorVisualizerSERVICE_H_
00031 #define __ErrorVisualizerSERVICE_H_
00032
00033
00034 #include <ubitrack/PoseService.h>
00035 #include <debug.h>
00036 #include <DWARF/ViewerControl.h>
00037 #include <string>
00038 #include <map>
00039
00040 #include "auto_vector.h"
00041 #include "ObjrefImporterNeed.h"
00042 #include "ErrorPoseAbility.h"
00043
00044
00045 namespace DWARF {
00046
00047
00048
00049
00050
00051
00052
00053
00054
00055 class ErrorVisualizerService
00056 : public PoseService
00057 , protected ObjrefImporterNeed<DWARF::ViewerControl>::Processor
00058 {
00059 protected:
00060 omni_mutex m_Mutex;
00061
00062 ObjrefImporterNeed<DWARF::ViewerControl> m_ViewerNeed;
00063
00064 typedef std::map<std::string, ErrorPoseAbility*> AbilityMapT;
00065 AbilityMapT m_AbilityMap;
00066 auto_vector<ErrorPoseAbility> m_Abilities;
00067
00068
00069 void onImport( DWARF::ViewerControl_ptr pInterface,
00070 ObjrefImporterNeed<DWARF::ViewerControl>* pImporter );
00071
00072
00073
00074
00075 virtual CORBA::Object_ptr createNeedObject(DWARF::NeedDescription_ptr needDescr);
00076
00077 public:
00078 ErrorVisualizerService();
00079 virtual ~ErrorVisualizerService();
00080
00081 protected:
00082
00083
00084
00085
00086 void run();
00087
00088
00089 void onEvent( PoseData& );
00090 };
00091 };
00092
00093 #endif //__ErrorVisualizerSERVICE_H_