Slicer  4.8
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 
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()