Slicer  4.10
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
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:
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:
191  void operator=(const vtkDiffusionTensorGlyph&);
192 };
193 
194 #endif
scale and orient glyph(s) according to tensor eigenvalues and eigenvectors.