00001 /*=auto========================================================================= 00002 00003 Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved. 00004 00005 See Doc/copyright/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=*/ 00023 00024 #ifndef __vtkMRMLScalarVolumeNode_h 00025 #define __vtkMRMLScalarVolumeNode_h 00026 00027 00028 #include "vtkMRMLVolumeNode.h" 00029 #include "vtkMRMLScalarVolumeDisplayNode.h" 00030 #include "vtkMRMLVolumeArchetypeStorageNode.h" 00031 00032 class vtkImageData; 00033 class vtkImageAccumulateDiscrete; 00034 class vtkImageBimodalAnalysis; 00035 class vtkMRMLStorageNode; 00036 class vtkMRMLStorageNode; 00037 00038 class VTK_MRML_EXPORT vtkMRMLScalarVolumeNode : public vtkMRMLVolumeNode 00039 { 00040 public: 00041 static vtkMRMLScalarVolumeNode *New(); 00042 vtkTypeMacro(vtkMRMLScalarVolumeNode,vtkMRMLVolumeNode); 00043 void PrintSelf(ostream& os, vtkIndent indent); 00044 00045 virtual vtkMRMLNode* CreateNodeInstance(); 00046 00049 virtual void ReadXMLAttributes( const char** atts); 00050 00053 virtual void WriteXML(ostream& of, int indent); 00054 00057 virtual void Copy(vtkMRMLNode *node); 00058 00061 virtual const char* GetNodeTagName() {return "Volume";}; 00062 00065 virtual void UpdateScene(vtkMRMLScene *scene); 00066 00071 int GetLabelMap(); 00072 void SetLabelMap(int); 00073 void LabelMapOn(); 00074 void LabelMapOff(); 00075 00078 static void CreateNoneNode(vtkMRMLScene *scene); 00079 00082 virtual vtkMRMLScalarVolumeDisplayNode* GetScalarVolumeDisplayNode() 00083 { 00084 return vtkMRMLScalarVolumeDisplayNode::SafeDownCast(this->GetDisplayNode()); 00085 } 00086 00087 virtual void UpdateFromMRML(); 00088 00092 virtual void CalculateAutoLevels(vtkMRMLScalarVolumeDisplayNode *refNode = NULL, vtkImageData *refData = NULL) 00093 { 00094 this->CalculateScalarAutoLevels(refNode, refData); 00095 }; 00096 00097 virtual void CalculateScalarAutoLevels( vtkMRMLScalarVolumeDisplayNode *refNode = NULL, 00098 vtkImageData *imageData = NULL); 00101 void CalculateStatisticsAutoLevels( vtkMRMLScalarVolumeDisplayNode *refNode = NULL, 00102 vtkImageData *imageData = NULL); 00103 00106 virtual vtkMRMLStorageNode* CreateDefaultStorageNode() 00107 { 00108 return vtkMRMLVolumeArchetypeStorageNode::New(); 00109 }; 00110 00111 protected: 00112 vtkMRMLScalarVolumeNode(); 00113 ~vtkMRMLScalarVolumeNode(); 00114 vtkMRMLScalarVolumeNode(const vtkMRMLScalarVolumeNode&); 00115 void operator=(const vtkMRMLScalarVolumeNode&); 00116 00119 vtkImageAccumulateDiscrete *Accumulate; 00120 vtkImageBimodalAnalysis *Bimodal; 00121 00122 int CalculatingAutoLevels; 00123 }; 00124 00125 #endif 00126 00127 00128 00129
1.6.1