Slicer  5.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
vtkMRMLStorableNode.h
Go to the documentation of this file.
1 /*=auto=========================================================================
2 
3  Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
4 
5  See COPYRIGHT.txt
6  or http://www.slicer.org/copyright/copyright.txt for details.
7 
8  Program: 3D Slicer
9  Module: $RCSfile: vtkMRMLStorableNode.h,v $
10  Date: $Date: 2006/03/19 17:12:28 $
11  Version: $Revision: 1.6 $
12 
13 =========================================================================auto=*/
14 
15 #ifndef __vtkMRMLStorableNode_h
16 #define __vtkMRMLStorableNode_h
17 
18 // MRML includes
19 #include "vtkMRMLNode.h"
20 class vtkMRMLStorageNode;
21 
22 // VTK includes
23 class vtkTagTable;
24 
25 // STD includes
26 #include <vector>
27 
33 class VTK_MRML_EXPORT vtkMRMLStorableNode : public vtkMRMLNode
34 {
35 public:
37  void PrintSelf(ostream& os, vtkIndent indent) override;
38 
39  //--------------------------------------------------------------------------
41  //--------------------------------------------------------------------------
42  vtkGetObjectMacro ( UserTagTable, vtkTagTable );
43 
44  //--------------------------------------------------------------------------
46  //--------------------------------------------------------------------------
47 
48  vtkMRMLNode* CreateNodeInstance() override = 0;
49 
50  const char* GetNodeTagName() override = 0;
51 
54  void ReadXMLAttributes( const char** atts) override;
55 
58  void WriteXML(ostream& of, int indent) override;
59 
62  void Copy(vtkMRMLNode* node) override;
63 
67 
70  void UpdateScene(vtkMRMLScene *scene) override;
71 
74  void ProcessMRMLEvents ( vtkObject * /*caller*/,
75  unsigned long /*event*/,
76  void * /*callData*/ ) override;
77 
80  void SetAndObserveStorageNodeID(const char *storageNodeID);
81  void AddAndObserveStorageNodeID(const char *storageNodeID);
82  void SetAndObserveNthStorageNodeID(int n, const char *storageNodeID);
83 
86  bool HasStorageNodeID(const char* storageNodeID);
87 
96  void SetSlicerDataType ( const char *type );
97  const char *GetSlicerDataType ();
98 
99  int GetNumberOfStorageNodes();
100  const char *GetNthStorageNodeID(int n);
101  const char *GetStorageNodeID();
102 
105  vtkMRMLStorageNode* GetNthStorageNode(int n);
106  vtkMRMLStorageNode* GetStorageNode();
107 
113  virtual vtkMRMLStorageNode* CreateDefaultStorageNode();
114 
119  virtual std::string GetDefaultStorageNodeClassName(const char* filename = nullptr);
120 
123  virtual bool AddDefaultStorageNode(const char* filename = nullptr);
124 
130  vtkSetMacro(DefaultSequenceStorageNodeClassName, std::string);
131  vtkGetMacro(DefaultSequenceStorageNodeClassName, std::string);
132 
137  virtual vtkMRMLStorageNode* CreateDefaultSequenceStorageNode();
138 
152  virtual bool GetModifiedSinceRead();
153 
157  virtual void StorableModified();
158 
159  protected:
161  ~vtkMRMLStorableNode() override;
163  void operator=(const vtkMRMLStorableNode&);
164 
165  static const char* StorageNodeReferenceRole;
167 
168  virtual const char* GetStorageNodeReferenceRole();
169  virtual const char* GetStorageNodeReferenceMRMLAttributeName();
170 
172 
176  std::string SlicerDataType;
177 
179 
187  virtual vtkTimeStamp GetStoredTime();
188 
197  vtkTimeStamp StorableModifiedTime;
198 };
199 
200 #endif
static const char * StorageNodeReferenceMRMLAttributeName
virtual void ReadXMLAttributes(const char **atts)
void operator=(const vtkMRMLNode &)
virtual vtkMRMLNode * CreateNodeInstance()=0
Create instance of the default node. Like New only virtual.
virtual void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData)
Propagate events generated in mrml.
virtual void Copy(vtkMRMLNode *node)
Copy node contents from another node of the same type. Does not copy node ID and Scene. Performs deep copy - an independent copy is created from all data, including bulk data.
MRML node to represent a 3D surface model.
A set of MRML Nodes that supports serialization and undo/redo.
Definition: vtkMRMLScene.h:57
A superclass for other storage nodes.
virtual void WriteXML(ostream &of, int indent)
void PrintSelf(ostream &os, vtkIndent indent) override
#define vtkMRMLCopyContentMacro(thisClassName)
Definition: vtkMRMLNode.h:142
vtkTimeStamp StorableModifiedTime
virtual const char * GetNodeTagName()=0
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:167
std::string DefaultSequenceStorageNodeClassName
static const char * StorageNodeReferenceRole
virtual void UpdateScene(vtkMRMLScene *)
Definition: vtkMRMLNode.h:206