00001
00002
00003
00004
00005
00013 #ifndef _SIGNMRMLSCENE_H
00014 #define _SIGNMRMLSCENE_H
00015
00016 #include <SignDLL.h>
00017
00018 #include <map>
00019 #include <vtkMRMLScene.h>
00020
00021 class SignContext;
00022 class vtkMRMLNode;
00023 class SignMRMLNodeHelper;
00024 class vtkMRMLSliceNode;
00025
00026 class SIGN_EXPORT SignMRMLScene : public vtkMRMLScene
00027 {
00028 vtkTypeRevisionMacro(SignMRMLScene,vtkMRMLScene);
00029 static SignMRMLScene* New();
00030
00031 vtkGetMacro(Context,SignContext*);
00032 vtkSetMacro(Context,SignContext*);
00033
00034 SignMRMLNodeHelper* GetNodeHelperForNode(vtkMRMLNode* node);
00035 vtkMRMLNode* GetNodeForNodeHelper(SignMRMLNodeHelper* helper);
00036
00037 protected:
00038 SignMRMLScene();
00039 ~SignMRMLScene();
00040 SignMRMLScene(const SignMRMLScene&);
00041 void operator=(const SignMRMLScene&);
00042
00043
00044 private:
00045 static void NodeAddedCallback(vtkObject* caller,unsigned long event,void* data,void* calldata);
00046 static void NodeRemovedCallback(vtkObject* caller,unsigned long event,void* data,void* calldata);
00047
00048 SignContext* Context;
00049 std::map<vtkMRMLNode*,SignMRMLNodeHelper*> helperMap;
00050
00051 };
00052
00053 #endif