00001 #ifndef MITKvtkObjectSet_H 00002 #define MITKvtkObjectSet_H 00003 00004 #include <vtkObject.h> 00005 #include <mitkCommon.h> 00006 #include <MitkExtExports.h> 00007 #include <set> 00008 00009 class vtkObjectObserver; 00010 00021 class MitkExt_EXPORT vtkObjectSet 00022 { 00023 public: 00024 vtkObjectSet(); 00025 virtual ~vtkObjectSet(); 00026 00027 void AddObserver( vtkObjectObserver* observer ); 00028 void RemoveObserver( vtkObjectObserver* observer ); 00029 00030 void AddObject ( vtkObject * obj ); 00031 void RemoveObject ( vtkObject * obj ); 00032 00036 static void OnObjectModified(vtkObject *, unsigned long eid 00037 , void* clientdata, void * /*calldata*/); 00038 protected: 00039 std::set<vtkObjectObserver*> m_vtkObjectObservers; 00040 std::set<const vtkObject*> m_Objects; 00044 std::map<const vtkObject *, unsigned long> m_ObjectModifiedTags; 00048 std::map<const vtkObject *, unsigned long> m_ObjectDeleteTags; 00049 }; 00050 00051 #endif // MITKvtkObjectSet_H