Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkDiffusionTensorGlyph.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: vtkDiffusionTensorGlyph.h,v $
10  Date: $Date: 2006/04/18 17:32:59 $
11  Version: $Revision: 1.8 $
12 
13 =========================================================================auto=*/
14 
15 #ifndef __vtkDiffusionTensorGlyph_h
16 #define __vtkDiffusionTensorGlyph_h
17 
18 #include "vtkTeemConfigure.h"
19 
20 #include "vtkTensorGlyph.h"
21 #include <vtkVersion.h>
22 
23 class vtkImageData;
24 class vtkMatrix4x4;
25 
71 class VTK_Teem_EXPORT vtkDiffusionTensorGlyph : public vtkTensorGlyph
72 {
73 public:
74  vtkTypeMacro(vtkDiffusionTensorGlyph,vtkTensorGlyph);
75  void PrintSelf(ostream& os, vtkIndent indent) override;
76 
81  static vtkDiffusionTensorGlyph *New();
82 
85  vtkBooleanMacro(MaskGlyphs, int);
86  vtkSetMacro(MaskGlyphs, int);
87  vtkGetMacro(MaskGlyphs, int);
88 
92  virtual void SetMask(vtkImageData*);
93 
95 
98  void ColorGlyphsByLinearMeasure();
99  void ColorGlyphsBySphericalMeasure();
100  void ColorGlyphsByPlanarMeasure();
101  void ColorGlyphsByParallelDiffusivity();
102  void ColorGlyphsByPerpendicularDiffusivity();
103  void ColorGlyphsByMaxEigenvalue();
104  void ColorGlyphsByMidEigenvalue();
105  void ColorGlyphsByMinEigenvalue();
106  void ColorGlyphsByRelativeAnisotropy();
107  void ColorGlyphsByFractionalAnisotropy();
108  void ColorGlyphsByTrace();
109 
112  void ColorGlyphsByOrientation();
113 
117  //
127  virtual void SetVolumePositionMatrix(vtkMatrix4x4*);
128  vtkGetObjectMacro(VolumePositionMatrix, vtkMatrix4x4);
129 
133  //
144  //
145  virtual void SetTensorRotationMatrix(vtkMatrix4x4*);
146  vtkGetObjectMacro(TensorRotationMatrix, vtkMatrix4x4);
147 
152  vtkSetClampMacro(Resolution,int,1,VTK_INT_MAX);
153  vtkGetMacro(Resolution,int);
154 
161  vtkGetVector2Macro(DimensionResolution, int);
162  vtkSetVector2Macro(DimensionResolution, int);
163 
168  vtkMTimeType GetMTime() override;
169 
170 protected:
172  ~vtkDiffusionTensorGlyph() override;
173 
174  int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override;
175 
176  void ColorGlyphsBy(int measure);
177 
181 
182  int DimensionResolution[2];
183 
184  vtkMatrix4x4 *VolumePositionMatrix;
185  vtkMatrix4x4 *TensorRotationMatrix;
186 
187  vtkImageData *Mask;
188 
189 private:
191  void operator=(const vtkDiffusionTensorGlyph&) = delete;
192 };
193 
194 #endif
scale and orient glyph(s) according to tensor eigenvalues and eigenvectors.
int MaskGlyphs
which function of eigenvalues to use for coloring
int Resolution
mask glyphs outside of the brain for example, using the Mask