00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00032 #ifndef __vtkImageReader_h
00033 #define __vtkImageReader_h
00034
00035 #include "vtkImageReader2.h"
00036
00037 class vtkTransform;
00038
00039 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
00040 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
00041
00042 class VTK_IO_EXPORT vtkImageReader : public vtkImageReader2
00043 {
00044 public:
00045 static vtkImageReader *New();
00046 vtkTypeRevisionMacro(vtkImageReader,vtkImageReader2);
00047 void PrintSelf(ostream& os, vtkIndent indent);
00048
00050
00052 vtkSetVector6Macro(DataVOI,int);
00053 vtkGetVector6Macro(DataVOI,int);
00055
00057
00058 vtkGetMacro(DataMask,unsigned short);
00059 void SetDataMask(int val)
00060 {
00061 if (val == this->DataMask)
00062 {
00063 return;
00064 }
00065 this->DataMask = static_cast<unsigned short>(val);
00066 this->Modified();
00067 }
00069
00071
00074 virtual void SetTransform(vtkTransform*);
00075 vtkGetObjectMacro(Transform,vtkTransform);
00077
00078
00079
00080 void ComputeInverseTransformedExtent(int inExtent[6],
00081 int outExtent[6]);
00082 void ComputeInverseTransformedIncrements(vtkIdType inIncr[3],
00083 vtkIdType outIncr[3]);
00084
00085 int OpenAndSeekFile(int extent[6], int slice);
00086
00088
00089 vtkSetStringMacro(ScalarArrayName);
00090 vtkGetStringMacro(ScalarArrayName);
00092
00093 protected:
00094 vtkImageReader();
00095 ~vtkImageReader();
00096
00097 unsigned short DataMask;
00098
00099 vtkTransform *Transform;
00100
00101 void ComputeTransformedSpacing (double Spacing[3]);
00102 void ComputeTransformedOrigin (double origin[3]);
00103 void ComputeTransformedExtent(int inExtent[6],
00104 int outExtent[6]);
00105 void ComputeTransformedIncrements(vtkIdType inIncr[3],
00106 vtkIdType outIncr[3]);
00107
00108 int DataVOI[6];
00109
00110 char *ScalarArrayName;
00111
00112 virtual int RequestInformation(vtkInformation* request,
00113 vtkInformationVector** inputVector,
00114 vtkInformationVector* outputVector);
00115
00116 void ExecuteData(vtkDataObject *data);
00117 private:
00118 vtkImageReader(const vtkImageReader&);
00119 void operator=(const vtkImageReader&);
00120 };
00121
00122 #endif