Slicer 5.9
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
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
147
149 vtkAlgorithmOutput* GetInputImageDataConnection() override;
150
154 vtkAlgorithmOutput* GetBackgroundImageStencilDataConnection() override;
155
156 void UpdateImageDataPipeline() override;
157
162 void SetTensorRotationMatrix(vtkMatrix4x4 *);
163
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
scale and orient glyph(s) according to tensor eigenvalues and eigenvectors.
static const char * GetScalarEnumAsString(int val)
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 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).