Slicer  5.0
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) override;
40 
41  vtkMRMLNode* CreateNodeInstance() override;
42 
45  void ReadXMLAttributes( const char** atts) override;
46 
49  void WriteXML(ostream& of, int indent) override;
50 
53  void Copy(vtkMRMLNode *node) override;
54 
57  const char* GetNodeTagName() 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 
98 
101  void CreateDefaultDisplayNodes() 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 };
117 
118 #endif
119 
120 
121 
122 
MRML node for representing a volume (image stack).
vtkMRMLStorageNode * CreateDefaultStorageNode() override
Create default storage node or nullptr if does not have one
vtkMRMLNode * CreateNodeInstance() override
MRMLNode methods.
void Copy(vtkMRMLNode *node) override
Copy the node's attributes to this object
static vtkMRMLScalarVolumeNode * New()
A superclass for other storage nodes.
void operator=(const vtkMRMLScalarVolumeNode &)
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
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:167
void ReadXMLAttributes(const char **atts) override
Set node attributes
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
void CreateDefaultDisplayNodes() override
Create and observe default display node
void PrintSelf(ostream &os, vtkIndent indent) override