Slicer  4.8
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) VTK_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() VTK_OVERRIDE;
169 
170 protected:
172  ~vtkDiffusionTensorGlyph();
173 
174  virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
175 
176  void ColorGlyphsBy(int measure);
177 
178  int ScalarInvariant;
179  int MaskGlyphs;
180  int Resolution;
181 
182  int DimensionResolution[2];
183 
184  vtkMatrix4x4 *VolumePositionMatrix;
185  vtkMatrix4x4 *TensorRotationMatrix;
186 
187  vtkImageData *Mask;
188 
189 private:
190  vtkDiffusionTensorGlyph(const vtkDiffusionTensorGlyph&);
191  void operator=(const vtkDiffusionTensorGlyph&);
192 };
193 
194 #endif
scale and orient glyph(s) according to tensor eigenvalues and eigenvectors.