Slicer  4.8
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
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 
22 class vtkAlgorithmOutput;
25 class vtkImageCast;
26 class vtkImageData;
27 class vtkImageExtractComponents;
28 class vtkImageShiftScale;
29 class vtkImageMathematics;
30 
41 {
42  public:
45  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
46 
47  virtual vtkMRMLNode* CreateNodeInstance() VTK_OVERRIDE;
48 
51  virtual void ReadXMLAttributes( const char** atts) VTK_OVERRIDE;
52 
55  virtual void WriteXML(ostream& of, int indent) VTK_OVERRIDE;
56 
59  virtual void Copy(vtkMRMLNode *node) VTK_OVERRIDE;
60 
63  virtual const char* GetNodeTagName() VTK_OVERRIDE {return "DiffusionTensorVolumeDisplay";}
64 
65  //virtual vtkPolyData* ExecuteGlyphPipeLineAndGetPolyData( vtkImageData* );
66 
70  virtual void UpdateReferences() VTK_OVERRIDE;
71 
74  virtual void UpdateScene(vtkMRMLScene *scene) VTK_OVERRIDE;
75 
78  virtual void UpdateReferenceID(const char *oldID, const char *newID) VTK_OVERRIDE;
79 
82  virtual void ProcessMRMLEvents ( vtkObject * /*caller*/,
83  unsigned long /*event*/,
84  void * /*callData*/ ) VTK_OVERRIDE;
85 
86  //--------------------------------------------------------------------------
88  //--------------------------------------------------------------------------
89 
90  //--------------------------------------------------------------------------
92  //--------------------------------------------------------------------------
93 
97  vtkGetMacro(ScalarInvariant, int);
98 
102  vtkSetMacro(ScalarInvariant, int);
103 
107  this->SetScalarInvariant(vtkMRMLDiffusionTensorDisplayPropertiesNode::Trace);
108  };
109 
110  //Description:
114  };
115 
120  };
121 
126  };
127 
132  };
133 
138  };
139 
142  virtual const char * GetScalarInvariantAsString()
143  {
145  };
146 
148  virtual vtkAlgorithmOutput* GetInputImageDataConnection() VTK_OVERRIDE;
149 
153  virtual vtkAlgorithmOutput* GetBackgroundImageStencilDataConnection() VTK_OVERRIDE;
154 
155  virtual void UpdateImageDataPipeline() VTK_OVERRIDE;
156 
157  vtkGetObjectMacro(DTIMathematics, vtkDiffusionTensorMathematics);
158  vtkGetObjectMacro(DTIMathematicsAlpha, vtkDiffusionTensorMathematics);
159  vtkGetObjectMacro (ShiftScale, vtkImageShiftScale);
160 
161 
164  virtual std::vector< vtkMRMLGlyphableVolumeSliceDisplayNode*> GetSliceGlyphDisplayNodes( vtkMRMLVolumeNode* node ) VTK_OVERRIDE;
165 
166 
169  virtual void AddSliceGlyphDisplayNodes( vtkMRMLVolumeNode* node ) VTK_OVERRIDE;
170 
174  virtual void GetDisplayScalarRange(double range[2]) VTK_OVERRIDE;
175 
176  static int GetNumberOfScalarInvariants();
177  static int GetNthScalarInvariant(int i);
178 
179 protected:
184 
186  virtual void SetInputToImageDataPipeline(vtkAlgorithmOutput *imageDataConnection) VTK_OVERRIDE;
187 
188  virtual vtkAlgorithmOutput* GetScalarImageDataConnection() VTK_OVERRIDE;
189 
190  static std::vector<int> GetSupportedColorModes();
191 
193 
198 
199  vtkImageShiftScale *ShiftScale;
200 
201  vtkImageMathematics *ImageMath;
202 
203  vtkImageCast *ImageCast;
204 
207 
208 
209 };
210 
211 #endif
212 
virtual std::vector< vtkMRMLGlyphableVolumeSliceDisplayNode * > GetSliceGlyphDisplayNodes(vtkMRMLVolumeNode *vtkNotUsed(node))
get associated slice glyph display node or NULL if not set
virtual vtkAlgorithmOutput * GetInputImageDataConnection() VTK_OVERRIDE
Gets the pipeline input.
virtual vtkMRMLNode * CreateNodeInstance() VTK_OVERRIDE
Create instance of the default node. Like New only virtual.
scale and orient glyph(s) according to tensor eigenvalues and eigenvectors.
virtual const char * GetScalarInvariantAsString()
Return a text string describing the ScalarInvariant variable.
void SetScalarInvariantToLinearMeasure()
Set scalar invariant to C_L (Westin&#39;s linear measure)
virtual void SetInputToImageDataPipeline(vtkAlgorithmOutput *imageDataConnection) VTK_OVERRIDE
virtual vtkAlgorithmOutput * GetScalarImageDataConnection()
virtual void UpdateReferences() VTK_OVERRIDE
vtkDiffusionTensorMathematics * DTIMathematics
used for main scalar invarant (can be 1 or 3 component)
virtual void UpdateScene(vtkMRMLScene *scene) VTK_OVERRIDE
Finds the storage node and read the data.
vtkDiffusionTensorMathematics * DTIMathematicsAlpha
used for calculating single component magnitude for color images
virtual void UpdateImageDataPipeline()
Update the pipeline based on this node attributes.
virtual void ProcessMRMLEvents(vtkObject *, unsigned long, void *) VTK_OVERRIDE
alternative method to propagate events generated in Display nodes
void SetScalarInvariantToPlanarMeasure()
Set scalar invariant to C_P (Westin&#39;s planar measure)
void SetScalarInvariantToFractionalAnisotropy()
Set scalar invariant to FA (normalized variance of eigenvalues)
A set of MRML Nodes that supports serialization and undo/redo.
Definition: vtkMRMLScene.h:54
virtual void UpdateReferenceID(const char *oldID, const char *newID) VTK_OVERRIDE
Update the stored reference to another node in the scene.
MRML node to represent display properties for tractography.
void operator=(const vtkMRMLGlyphableVolumeDisplayNode &)
MRML node for representing a volume (image stack).
MRML node for representing a volume (image stack).
virtual void AddSliceGlyphDisplayNodes(vtkMRMLVolumeNode *vtkNotUsed(node))
add slice glyph display nodes if not already present and return it
void SetScalarInvariantToTrace()
Set scalar invariant to trace (sum of eigenvalues).
static const char * GetScalarEnumAsString(int val)
virtual vtkAlgorithmOutput * GetBackgroundImageStencilDataConnection() VTK_OVERRIDE
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:135
virtual void GetDisplayScalarRange(double range[2]) VTK_OVERRIDE
void SetScalarInvariantToSphericalMeasure()
Set scalar invariant to C_S (Westin&#39;s spherical measure)
void SetScalarInvariantToRelativeAnisotropy()
Set scalar invariant to relative anisotropy.
MRML node for representing a volume display attributes.
static vtkMRMLGlyphableVolumeDisplayNode * New()