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 {if (val == this->DataMask) { return; }
00061 this->DataMask = ((unsigned short)(val)); this->Modified();}
00063
00065
00068 virtual void SetTransform(vtkTransform*);
00069 vtkGetObjectMacro(Transform,vtkTransform);
00071
00072
00073
00074 void ComputeInverseTransformedExtent(int inExtent[6],
00075 int outExtent[6]);
00076 void ComputeInverseTransformedIncrements(vtkIdType inIncr[3],
00077 vtkIdType outIncr[3]);
00078
00079 int OpenAndSeekFile(int extent[6], int slice);
00080
00082
00083 vtkSetStringMacro(ScalarArrayName);
00084 vtkGetStringMacro(ScalarArrayName);
00086
00087 protected:
00088 vtkImageReader();
00089 ~vtkImageReader();
00090
00091 unsigned short DataMask;
00092
00093 vtkTransform *Transform;
00094
00095 void ComputeTransformedSpacing (double Spacing[3]);
00096 void ComputeTransformedOrigin (double origin[3]);
00097 void ComputeTransformedExtent(int inExtent[6],
00098 int outExtent[6]);
00099 void ComputeTransformedIncrements(vtkIdType inIncr[3],
00100 vtkIdType outIncr[3]);
00101
00102 int DataVOI[6];
00103
00104 char *ScalarArrayName;
00105
00106 virtual int RequestInformation(vtkInformation* request,
00107 vtkInformationVector** inputVector,
00108 vtkInformationVector* outputVector);
00109
00110 void ExecuteData(vtkDataObject *data);
00111 private:
00112 vtkImageReader(const vtkImageReader&);
00113 void operator=(const vtkImageReader&);
00114 };
00115
00116 #endif