Slicer  5.1
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkMRMLROINode.h
Go to the documentation of this file.
1 #ifndef __vtkMRMLROINode_h
2 #define __vtkMRMLROINode_h
3 
5 
6 class vtkPlanes;
7 
12 class VTK_MRML_EXPORT vtkMRMLROINode : public vtkMRMLTransformableNode
13 {
14 public:
15  static vtkMRMLROINode *New();
17  void PrintSelf(ostream& os, vtkIndent indent) override;
18 
19  //--------------------------------------------------------------------------
21  //--------------------------------------------------------------------------
22  vtkMRMLNode* CreateNodeInstance() override;
23 
26  void ReadXMLAttributes( const char** atts) override;
27 
28  virtual void ReadXMLString( const char *keyValuePairs);
29 
32  void WriteXML(ostream& of, int indent) override;
33 
36  void Copy(vtkMRMLNode *node) override;
37 
40  const char* GetNodeTagName() override {return "MRMLROINode";}
41 
44  void UpdateScene(vtkMRMLScene *scene) override;
45 
48  void UpdateReferences() override;
49 
52  vtkBooleanMacro(Visibility, int);
53  vtkGetMacro(Visibility, int);
54  vtkSetMacro(Visibility, int);
55 
58  vtkBooleanMacro(InteractiveMode, int);
59  vtkGetMacro(InteractiveMode, int);
60  vtkSetMacro(InteractiveMode, int);
61 
65  void SetXYZ(double X, double Y, double Z);
66  void SetXYZ(double* XYZ);
67  vtkGetVectorMacro(XYZ,double,3);
68 
71  void SetRadiusXYZ(double RadiusX, double RadiusY, double RadiusZ);
72  void SetRadiusXYZ(double* RadiusXYZ);
73  vtkGetVectorMacro(RadiusXYZ,double,3);
74 
77  void SetIJK(double I, double J, double K);
78  void SetIJK(double* IJK);
79  vtkGetVectorMacro(IJK,double,3);
80 
83  void SetRadiusIJK(double RadiusI, double RadiusJ, double RadiusK);
84  void SetRadiusIJK(double* RadiusIJK);
85  vtkGetVectorMacro(RadiusIJK,double,3);
86 
92  vtkSetMacro(InsideOut,int);
93  vtkGetMacro(InsideOut,int);
94  vtkBooleanMacro(InsideOut,int);
95 
98  vtkSetStringMacro(LabelText);
99  vtkGetStringMacro(LabelText);
100 
101  void ProcessMRMLEvents ( vtkObject *caller, unsigned long event, void *callData ) override;
102 
103  vtkGetStringMacro(VolumeNodeID);
104  vtkSetStringMacro(VolumeNodeID);
105 
108  bool CanApplyNonLinearTransforms()const override;
109  void ApplyTransform(vtkAbstractTransform* transform) override;
110 
113  void GetTransformedPlanes(vtkPlanes *planes);
114 
115 protected:
116  vtkMRMLROINode();
117  ~vtkMRMLROINode() override;
119  void operator=(const vtkMRMLROINode&);
122 
126  double XYZ[3];
129  double RadiusXYZ[3];
133  double IJK[3];
136  double RadiusIJK[3];
137 
140 
141  char *LabelText;
142 
146 };
147 
148 #endif
vtkMRMLNode * CreateNodeInstance() override=0
MRMLNode methods.
void ProcessMRMLEvents(vtkObject *, unsigned long, void *) override
alternative method to propagate events generated in Transform nodes
int InsideOut
Control the orientation of the normals.
char * VolumeNodeID
The ID of the volume associated with the ROI
virtual void ApplyTransform(vtkAbstractTransform *transform)
MRML node to represent a 3D ROI.
virtual void UpdateReferences()
The method should remove all pointers and observations to all nodes that are not in the scene anymore...
void Copy(vtkMRMLNode *node) override
Copy node contents from another node of the same type. Reimplemented to copy default sequence storage...
A set of MRML Nodes that supports serialization and undo/redo.
Definition: vtkMRMLScene.h:57
void ReadXMLAttributes(const char **atts) override
Read node attributes from XML file
void operator=(const vtkMRMLTransformableNode &)
void PrintSelf(ostream &os, vtkIndent indent) override
virtual bool CanApplyNonLinearTransforms() const
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
void UpdateScene(vtkMRMLScene *scene) override
Finds the storage node and read the data
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:167
MRML node for representing a node with a transform.
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)