00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
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
00076
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;
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&);
00116 void operator=(const vtkImageReader&);
00117 };
00118
00119 #endif