VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageReader.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 00013 00014 =========================================================================*/ 00029 #ifndef __vtkImageReader_h 00030 #define __vtkImageReader_h 00031 00032 #include "vtkImageReader2.h" 00033 00034 class vtkTransform; 00035 00036 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0 00037 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1 00038 00039 class VTK_IO_EXPORT vtkImageReader : public vtkImageReader2 00040 { 00041 public: 00042 static vtkImageReader *New(); 00043 vtkTypeRevisionMacro(vtkImageReader,vtkImageReader2); 00044 void PrintSelf(ostream& os, vtkIndent indent); 00045 00047 00049 vtkSetVector6Macro(DataVOI,int); 00050 vtkGetVector6Macro(DataVOI,int); 00052 00054 00055 vtkGetMacro(DataMask,unsigned short); 00056 void SetDataMask(int val) 00057 { 00058 if (val == this->DataMask) 00059 { 00060 return; 00061 } 00062 this->DataMask = static_cast<unsigned short>(val); 00063 this->Modified(); 00064 } 00066 00068 00071 virtual void SetTransform(vtkTransform*); 00072 vtkGetObjectMacro(Transform,vtkTransform); 00074 00075 // Warning !!! 00076 // following should only be used by methods or template helpers, not users 00077 void ComputeInverseTransformedExtent(int inExtent[6], 00078 int outExtent[6]); 00079 void ComputeInverseTransformedIncrements(vtkIdType inIncr[3], 00080 vtkIdType outIncr[3]); 00081 00082 int OpenAndSeekFile(int extent[6], int slice); 00083 00085 00086 vtkSetStringMacro(ScalarArrayName); 00087 vtkGetStringMacro(ScalarArrayName); 00089 00090 protected: 00091 vtkImageReader(); 00092 ~vtkImageReader(); 00093 00094 unsigned short DataMask; // Mask each pixel with ... 00095 00096 vtkTransform *Transform; 00097 00098 void ComputeTransformedSpacing (double Spacing[3]); 00099 void ComputeTransformedOrigin (double origin[3]); 00100 void ComputeTransformedExtent(int inExtent[6], 00101 int outExtent[6]); 00102 void ComputeTransformedIncrements(vtkIdType inIncr[3], 00103 vtkIdType outIncr[3]); 00104 00105 int DataVOI[6]; 00106 00107 char *ScalarArrayName; 00108 00109 virtual int RequestInformation(vtkInformation* request, 00110 vtkInformationVector** inputVector, 00111 vtkInformationVector* outputVector); 00112 00113 void ExecuteData(vtkDataObject *data); 00114 private: 00115 vtkImageReader(const vtkImageReader&); // Not implemented. 00116 void operator=(const vtkImageReader&); // Not implemented. 00117 }; 00118 00119 #endif