Slicer  4.8
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkMRMLDiffusionWeightedVolumeNode.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: vtkMRMLVolumeNode.h,v $
10  Date: $Date: 2006/03/19 17:12:29 $
11  Version: $Revision: 1.13 $
12 
13 =========================================================================auto=*/
14 
15 #ifndef __vtkMRMLDiffusionWeightedVolumeNode_h
16 #define __vtkMRMLDiffusionWeightedVolumeNode_h
17 
20 
21 class vtkImageData;
22 class vtkDoubleArray;
23 class vtkImageExtractComponents;
24 
35 {
36  public:
39  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
40 
41  virtual vtkMRMLNode* CreateNodeInstance() VTK_OVERRIDE;
42 
45  virtual void ReadXMLAttributes( const char** atts) VTK_OVERRIDE;
46 
49  virtual void WriteXML(ostream& of, int indent) VTK_OVERRIDE;
50 
53  virtual void Copy(vtkMRMLNode *node) VTK_OVERRIDE;
54 
57  virtual const char* GetNodeTagName() VTK_OVERRIDE {return "DiffusionWeightedVolume";}
58 
60  void SetNumberOfGradients(int val);
61  int GetNumberOfGradients();
62 
64  void SetDiffusionGradient(int val, const double g[3]);
65  void SetDiffusionGradients(vtkDoubleArray *grad);
66  double *GetDiffusionGradient(int val);
67  void GetDiffusionGradient(int val, double g[3]);
68  vtkGetObjectMacro(DiffusionGradients,vtkDoubleArray);
69 
71  void SetBValue (int val, const double b);
72  void SetBValues (vtkDoubleArray *bValue);
74 #ifdef GetBValue
75 #undef GetBValue
76 #endif
77  double GetBValue(int val);
78  vtkGetObjectMacro(BValues,vtkDoubleArray);
79 
82  void SetMeasurementFrameMatrix(const double mf[3][3]);
83  void GetMeasurementFrameMatrix(double mf[3][3]);
84  void SetMeasurementFrameMatrix(const double xr, const double xa, const double xs,
85  const double yr, const double ya, const double ys,
86  const double zr, const double za, const double zs);
87 
88  void SetMeasurementFrameMatrix(vtkMatrix4x4 *mat);
89  void GetMeasurementFrameMatrix(vtkMatrix4x4 *mat);
90 
93  virtual vtkMRMLDiffusionWeightedVolumeDisplayNode* GetDiffusionWeightedVolumeDisplayNode();
94 
97  virtual vtkMRMLStorageNode* CreateDefaultStorageNode() VTK_OVERRIDE;
98 
101  virtual void CreateDefaultDisplayNodes() VTK_OVERRIDE;
102 
103 protected:
108 
109  void SetNumberOfGradientsInternal(int val);
110 
111  double MeasurementFrameMatrix[3][3];
112 
113  vtkDoubleArray *DiffusionGradients;
114  vtkDoubleArray *BValues;
115 
116  vtkImageExtractComponents *ExtractComponents;
117 
118 };
119 
120 #endif
121 
122 
123 
124 
MRML node for representing a volume (image stack).
virtual vtkMRMLNode * CreateNodeInstance() VTK_OVERRIDE
MRMLNode methods.
virtual vtkMRMLStorageNode * CreateDefaultStorageNode() VTK_OVERRIDE
Create default storage node or NULL if does not have one.
void PrintSelf(ostream &os, vtkIndent indent) VTK_OVERRIDE
static vtkMRMLScalarVolumeNode * New()
A supercalss for other storage nodes.
void operator=(const vtkMRMLScalarVolumeNode &)
virtual void CreateDefaultDisplayNodes() VTK_OVERRIDE
Create and observe default display node.
MRML node for representing diffusion weighted MRI volume.
MRML node for representing a volume (image stack).
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:135