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
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