|
Slicer 4.2
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
|
00001 /*=auto========================================================================= 00002 00003 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved. 00004 00005 See COPYRIGHT.txt 00006 or http://www.slicer.org/copyright/copyright.txt for details. 00007 00008 Program: 3D Slicer 00009 Module: $RCSfile: vtkMRMLVolumeNode.h,v $ 00010 Date: $Date: 2006/03/19 17:12:29 $ 00011 Version: $Revision: 1.13 $ 00012 00013 =========================================================================auto=*/ 00014 00015 #ifndef __vtkMRMLDiffusionWeightedVolumeNode_h 00016 #define __vtkMRMLDiffusionWeightedVolumeNode_h 00017 00018 #include "vtkMRMLScalarVolumeNode.h" 00019 class vtkMRMLDiffusionWeightedVolumeDisplayNode; 00020 00021 class vtkImageData; 00022 class vtkDoubleArray; 00023 class vtkImageExtractComponents; 00024 00034 class VTK_MRML_EXPORT vtkMRMLDiffusionWeightedVolumeNode : public vtkMRMLScalarVolumeNode 00035 { 00036 public: 00037 static vtkMRMLDiffusionWeightedVolumeNode *New(); 00038 vtkTypeMacro(vtkMRMLDiffusionWeightedVolumeNode,vtkMRMLScalarVolumeNode); 00039 void PrintSelf(ostream& os, vtkIndent indent); 00040 00041 virtual vtkMRMLNode* CreateNodeInstance(); 00042 00045 virtual void ReadXMLAttributes( const char** atts); 00046 00049 virtual void WriteXML(ostream& of, int indent); 00050 00053 virtual void Copy(vtkMRMLNode *node); 00054 00057 virtual const char* GetNodeTagName() {return "DiffusionWeightedVolume";}; 00058 00060 void SetNumberOfGradients(int val); 00061 vtkGetMacro(NumberOfGradients,int); 00062 00064 void SetDiffusionGradient(int val, const double g[3]); 00065 void SetDiffusionGradients(vtkDoubleArray *grad); 00066 double *GetDiffusionGradient(int val); 00067 void GetDiffusionGradient(int val, double g[3]); 00068 vtkGetObjectMacro(DiffusionGradients,vtkDoubleArray); 00069 00071 void SetBValue (int val, const double b); 00072 void SetBValues (vtkDoubleArray *bValue); 00074 #ifdef GetBValue 00075 #undef GetBValue 00076 #endif 00077 double GetBValue(int val); 00078 vtkGetObjectMacro(BValues,vtkDoubleArray); 00079 00082 void SetMeasurementFrameMatrix(const double mf[3][3]); 00083 void GetMeasurementFrameMatrix(double mf[3][3]); 00084 void SetMeasurementFrameMatrix(const double xr, const double xa, const double xs, 00085 const double yr, const double ya, const double ys, 00086 const double zr, const double za, const double zs); 00087 00088 void SetMeasurementFrameMatrix(vtkMatrix4x4 *mat); 00089 void GetMeasurementFrameMatrix(vtkMatrix4x4 *mat); 00090 00093 virtual vtkMRMLDiffusionWeightedVolumeDisplayNode* GetDiffusionWeightedVolumeDisplayNode(); 00094 00097 virtual vtkMRMLStorageNode* CreateDefaultStorageNode(); 00098 00099 protected: 00100 vtkMRMLDiffusionWeightedVolumeNode(); 00101 ~vtkMRMLDiffusionWeightedVolumeNode(); 00102 vtkMRMLDiffusionWeightedVolumeNode(const vtkMRMLDiffusionWeightedVolumeNode&); 00103 void operator=(const vtkMRMLDiffusionWeightedVolumeNode&); 00104 00105 double MeasurementFrameMatrix[3][3]; 00106 00107 vtkDoubleArray *DiffusionGradients; 00108 vtkDoubleArray *BValues; 00109 00110 int NumberOfGradients; 00111 00112 vtkImageExtractComponents *ExtractComponents; 00113 00114 }; 00115 00116 #endif 00117 00118 00119 00120
1.7.4