15 #ifndef __vtkMRMLVolumeNode_h 16 #define __vtkMRMLVolumeNode_h 23 class vtkAlgorithmOutput;
24 class vtkEventForwarderCommand;
29 #include "itkMetaDataDictionary.h" 44 void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
50 virtual
void ReadXMLAttributes( const
char** atts) VTK_OVERRIDE;
54 virtual
void WriteXML(ostream& of,
int indent) VTK_OVERRIDE;
67 virtual const
char* GetNodeTagName() VTK_OVERRIDE = 0;
71 virtual
void UpdateScene(
vtkMRMLScene *scene) VTK_OVERRIDE;
83 static
bool ComputeIJKToRASFromScanOrder(const
char *order,
84 const
double* spacing,
87 vtkMatrix4x4 *IJKToRAS);
89 static const
char* ComputeScanOrderFromIJKToRAS(vtkMatrix4x4 *IJKToRAS);
91 void SetIJKToRASDirections(
double dirs[3][3]);
92 void SetIJKToRASDirections(
double ir,
double ia,
double is,
93 double jr,
double ja,
double js,
94 double kr,
double ka,
double ks);
95 void SetIToRASDirection(
double ir,
double ia,
double is);
96 void SetJToRASDirection(
double jr,
double ja,
double js);
97 void SetKToRASDirection(
double kr,
double ka,
double ks);
99 void GetIJKToRASDirections(
double dirs[3][3]);
100 void GetIToRASDirection(
double dirs[3]);
101 void GetJToRASDirection(
double dirs[3]);
102 void GetKToRASDirection(
double dirs[3]);
109 vtkGetVector3Macro (Spacing,
double);
110 virtual
void SetSpacing(
double arg1,
double arg2,
double arg3);
111 virtual
void SetSpacing(
double arg[3]);
112 vtkGetVector3Macro (Origin,
double);
113 virtual
void SetOrigin(
double arg1,
double arg2,
double arg3);
114 virtual
void SetOrigin(
double arg[3]);
118 double GetMinSpacing();
122 double GetMaxSpacing();
128 void GetIJKToRASMatrix(vtkMatrix4x4* mat);
129 void GetRASToIJKMatrix(vtkMatrix4x4* mat);
131 void GetIJKToRASDirectionMatrix(vtkMatrix4x4* mat);
132 void SetIJKToRASDirectionMatrix(vtkMatrix4x4* mat);
137 void SetIJKToRASMatrix(vtkMatrix4x4* mat);
138 void SetRASToIJKMatrix(vtkMatrix4x4* mat);
146 virtual
void GetRASBounds(
double bounds[6]) VTK_OVERRIDE;
151 virtual
void GetBounds(
double bounds[6]) VTK_OVERRIDE;
157 void GetSliceBounds(
double bounds[6], vtkMatrix4x4* rasToSlice);
173 void SetAndObserveImageData(vtkImageData *ImageData);
174 virtual vtkImageData* GetImageData();
178 virtual
void SetImageDataConnection(vtkAlgorithmOutput *inputPort);
180 vtkGetObjectMacro(ImageDataConnection, vtkAlgorithmOutput);
186 void ShiftImageDataExtentToZeroStart();
190 virtual
void ProcessMRMLEvents ( vtkObject * ,
192 void * ) VTK_OVERRIDE;
197 ImageDataModifiedEvent = 18001
202 void SetMetaDataDictionary(
const itk::MetaDataDictionary& );
203 const itk::MetaDataDictionary& GetMetaDataDictionary()
const;
207 virtual
void ApplyTransform(vtkAbstractTransform* transform) VTK_OVERRIDE;
209 virtual
void ApplyTransformMatrix(vtkMatrix4x4* transformMatrix) VTK_OVERRIDE;
211 virtual
void ApplyNonLinearTransform(vtkAbstractTransform* transform);
213 virtual
bool GetModifiedSinceRead() VTK_OVERRIDE;
216 ~vtkMRMLVolumeNode();
217 vtkMRMLVolumeNode(const vtkMRMLVolumeNode&);
218 void operator=(const vtkMRMLVolumeNode&);
221 void SetImageDataToDisplayNodes();
239 virtual
void GetBoundsInternal(
double bounds[6], vtkMatrix4x4* rasToSlice,
bool useTransform);
242 double IJKToRASDirections[3][3];
248 vtkAlgorithmOutput* ImageDataConnection;
249 vtkEventForwarderCommand* DataEventForwarder;
251 itk::MetaDataDictionary Dictionary;
MRML node for representing a volume display attributes.
Simplified inverse ITK transforms.
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
A set of MRML Nodes that supports serialization and undo/redo.
MRML node for representing a volume (image stack).
Abstract class that contains graphical display properties for displayable nodes.
Abstract Superclass for all specific types of MRML nodes.
Class to hold information about a node reference.
virtual vtkMRMLNode * CreateNodeInstance() VTK_OVERRIDE=0
MRMLNode methods.