Slicer 5.4
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
vtkMRMLDiffusionTensorVolumeDisplayNode.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: vtkMRMLDiffusionTensorVolumeDisplayNode.h,v $
10 Date: $Date: 2006/03/19 17:12:29 $
11 Version: $Revision: 1.3 $
12
13=========================================================================auto=*/
14
15#ifndef __vtkMRMLDiffusionTensorVolumeDisplayNode_h
16#define __vtkMRMLDiffusionTensorVolumeDisplayNode_h
17
21
22class vtkAlgorithmOutput;
25class vtkImageCast;
26class vtkImageData;
27class vtkImageExtractComponents;
28class vtkImageShiftScale;
29class vtkImageMathematics;
30class vtkMatrix4x4;
31
42{
43 public:
46 void PrintSelf(ostream& os, vtkIndent indent) override;
47
49
52 void ReadXMLAttributes( const char** atts) override;
53
56 void WriteXML(ostream& of, int indent) override;
57
60 void Copy(vtkMRMLNode *node) override;
61
64 const char* GetNodeTagName() override {return "DiffusionTensorVolumeDisplay";}
65
66 //virtual vtkPolyData* ExecuteGlyphPipeLineAndGetPolyData( vtkImageData* );
67
71 void UpdateReferences() override;
72
75 void UpdateScene(vtkMRMLScene *scene) override;
76
79 void UpdateReferenceID(const char *oldID, const char *newID) override;
80
83 void ProcessMRMLEvents ( vtkObject * /*caller*/,
84 unsigned long /*event*/,
85 void * /*callData*/ ) override;
86
87 //--------------------------------------------------------------------------
89 //--------------------------------------------------------------------------
90
91 //--------------------------------------------------------------------------
93 //--------------------------------------------------------------------------
94
98 vtkGetMacro(ScalarInvariant, int);
99
103 vtkSetMacro(ScalarInvariant, int);
104
110
111 //Description:
116
122
128
134
140
143 virtual const char * GetScalarInvariantAsString()
144 {
146 };
147
149 vtkAlgorithmOutput* GetInputImageDataConnection() override;
150
154 vtkAlgorithmOutput* GetBackgroundImageStencilDataConnection() override;
155
156 void UpdateImageDataPipeline() override;
157
162 void SetTensorRotationMatrix(vtkMatrix4x4 *);
163
164 vtkGetObjectMacro(DTIMathematics, vtkDiffusionTensorMathematics);
165 vtkGetObjectMacro(DTIMathematicsAlpha, vtkDiffusionTensorMathematics);
166 vtkGetObjectMacro (ShiftScale, vtkImageShiftScale);
167
168
171 std::vector< vtkMRMLGlyphableVolumeSliceDisplayNode*> GetSliceGlyphDisplayNodes( vtkMRMLVolumeNode* node ) override;
172
173
177
181 void GetDisplayScalarRange(double range[2]) override;
182
184 static int GetNthScalarInvariant(int i);
185
186protected:
191
193 void SetInputToImageDataPipeline(vtkAlgorithmOutput *imageDataConnection) override;
194
195 vtkAlgorithmOutput* GetScalarImageDataConnection() override;
196
197 static std::vector<int> GetSupportedColorModes();
198
200
205
206 vtkImageShiftScale *ShiftScale;
207
208 vtkImageMathematics *ImageMath;
209
210 vtkImageCast *ImageCast;
211
214
215
216};
217
218#endif
219
scale and orient glyph(s) according to tensor eigenvalues and eigenvectors.
static const char * GetScalarEnumAsString(int val)
MRML node for representing a volume (image stack).
static std::vector< int > GetSupportedColorModes()
vtkMRMLNode * CreateNodeInstance() override
Create instance of the default node. Like New only virtual.
vtkAlgorithmOutput * GetInputImageDataConnection() override
Get the input of the pipeline.
void SetScalarInvariantToPlanarMeasure()
Set scalar invariant to C_P (Westin's planar measure)
void SetScalarInvariantToFractionalAnisotropy()
Set scalar invariant to FA (normalized variance of eigenvalues)
std::vector< vtkMRMLGlyphableVolumeSliceDisplayNode * > GetSliceGlyphDisplayNodes(vtkMRMLVolumeNode *node) override
get associated slice glyph display node or nullptr if not set
void operator=(const vtkMRMLDiffusionTensorVolumeDisplayNode &)
virtual const char * GetScalarInvariantAsString()
Return a text string describing the ScalarInvariant variable.
void SetScalarInvariantToSphericalMeasure()
Set scalar invariant to C_S (Westin's spherical measure)
void ReadXMLAttributes(const char **atts) override
Set node attributes.
void UpdateImageDataPipeline() override
Update the pipeline based on this node attributes.
void SetScalarInvariantToRelativeAnisotropy()
Set scalar invariant to relative anisotropy.
void GetDisplayScalarRange(double range[2]) override
vtkMRMLDiffusionTensorVolumeDisplayNode(const vtkMRMLDiffusionTensorVolumeDisplayNode &)
vtkAlgorithmOutput * GetBackgroundImageStencilDataConnection() override
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
void Copy(vtkMRMLNode *node) override
Copy the node's attributes to this object.
void UpdateScene(vtkMRMLScene *scene) override
Finds the storage node and read the data.
void AddSliceGlyphDisplayNodes(vtkMRMLVolumeNode *node) override
add slice glyph display nodes if not already present and return it
vtkDiffusionTensorMathematics * DTIMathematicsAlpha
used for calculating single component magnitude for color images
void SetScalarInvariantToTrace()
Set scalar invariant to trace (sum of eigenvalues).
void SetScalarInvariantToLinearMeasure()
Set scalar invariant to C_L (Westin's linear measure)
void PrintSelf(ostream &os, vtkIndent indent) override
vtkAlgorithmOutput * GetScalarImageDataConnection() override
void SetTensorRotationMatrix(vtkMatrix4x4 *)
vtkDiffusionTensorMathematics * DTIMathematics
used for main scalar invariant (can be 1 or 3 component)
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
void SetInputToImageDataPipeline(vtkAlgorithmOutput *imageDataConnection) override
Set the input of the pipeline.
static vtkMRMLDiffusionTensorVolumeDisplayNode * New()
void ProcessMRMLEvents(vtkObject *, unsigned long, void *) override
alternative method to propagate events generated in Display nodes
void UpdateReferenceID(const char *oldID, const char *newID) override
Update the stored reference to another node in the scene.
MRML node for representing a volume display attributes.
MRML node to represent display properties for tractography.
Abstract Superclass for all specific types of MRML nodes.
A set of MRML Nodes that supports serialization and undo/redo.
MRML node for representing a volume (image stack).