|
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: vtkMRMLVectorVolumeDisplayNode.h,v $ 00010 Date: $Date: 2006/03/19 17:12:29 $ 00011 Version: $Revision: 1.3 $ 00012 00013 =========================================================================auto=*/ 00014 00015 #ifndef __vtkMRMLVectorVolumeDisplayNode_h 00016 #define __vtkMRMLVectorVolumeDisplayNode_h 00017 00018 #include "vtkMRMLGlyphableVolumeDisplayNode.h" 00019 00020 class vtkImageData; 00021 class vtkImageShiftScale; 00022 class vtkImageExtractComponents; 00023 class vtkImageRGBToHSI; 00024 00034 class VTK_MRML_EXPORT vtkMRMLVectorVolumeDisplayNode : public vtkMRMLGlyphableVolumeDisplayNode 00035 { 00036 public: 00037 static vtkMRMLVectorVolumeDisplayNode *New(); 00038 vtkTypeMacro(vtkMRMLVectorVolumeDisplayNode,vtkMRMLGlyphableVolumeDisplayNode); 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 "VectorVolumeDisplay";}; 00058 00059 //-------------------------------------------------------------------------- 00061 //-------------------------------------------------------------------------- 00062 00063 enum 00064 { 00065 scalarModeMagnitude = 0 00066 }; 00067 vtkGetMacro(ScalarMode, int); 00068 vtkSetMacro(ScalarMode, int); 00069 00070 void SetScalarModeToMagnitude() { 00071 this->SetScalarMode(this->scalarModeMagnitude); 00072 }; 00073 00074 enum 00075 { 00076 glyphModeLines = 1, 00077 glyphModeTubes = 2 00078 }; 00079 vtkGetMacro(GlyphMode, int); 00080 vtkSetMacro(GlyphMode, int); 00081 00082 void SetGlyphModeToLines() { 00083 this->SetGlyphMode(this->glyphModeLines); 00084 }; 00085 void SetGlyphModeToTubes() { 00086 this->SetGlyphMode(this->glyphModeTubes); 00087 }; 00088 00089 //virtual vtkPolyData* ExecuteGlyphPipeLineAndGetPolyData( vtkImageData* ) {return NULL;}; 00090 00091 virtual void SetDefaultColorMap() {}; 00092 00095 virtual void ProcessMRMLEvents ( vtkObject * /*caller*/, 00096 unsigned long /*event*/, 00097 void * /*callData*/ ); 00098 00100 virtual vtkImageData* GetInputImageData(); 00101 00103 virtual vtkImageData* GetOutputImageData(); 00104 00107 virtual void SetBackgroundImageData(vtkImageData *imageData); 00108 00109 virtual void UpdateImageDataPipeline(); 00110 00114 virtual std::vector< vtkMRMLGlyphableVolumeSliceDisplayNode*> 00115 GetSliceGlyphDisplayNodes( vtkMRMLVolumeNode* vtkNotUsed(node) ) 00116 { 00117 return std::vector< vtkMRMLGlyphableVolumeSliceDisplayNode*>(); 00118 } 00119 00122 vtkGetObjectMacro (ShiftScale, vtkImageShiftScale); 00123 vtkGetObjectMacro (RGBToHSI, vtkImageRGBToHSI); 00124 vtkGetObjectMacro (ExtractIntensity, vtkImageExtractComponents); 00125 vtkGetObjectMacro (AppendComponents, vtkImageAppendComponents); 00126 vtkGetObjectMacro (Threshold, vtkImageThreshold); 00127 00128 protected: 00129 vtkMRMLVectorVolumeDisplayNode(); 00130 ~vtkMRMLVectorVolumeDisplayNode(); 00131 vtkMRMLVectorVolumeDisplayNode(const vtkMRMLVectorVolumeDisplayNode&); 00132 void operator=(const vtkMRMLVectorVolumeDisplayNode&); 00133 00134 vtkImageData* GetScalarImageData(); 00135 00137 virtual void SetInputToImageDataPipeline(vtkImageData *imageData); 00138 00139 int ScalarMode; 00140 int GlyphMode; 00141 00142 vtkImageShiftScale *ShiftScale; 00143 vtkImageRGBToHSI *RGBToHSI; 00144 vtkImageExtractComponents *ExtractIntensity; 00145 }; 00146 00147 #endif
1.7.4