IO/vtkImageReader2.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00032 #ifndef __vtkImageReader2_h
00033 #define __vtkImageReader2_h
00034
00035 #include "vtkImageSource.h"
00036
00037 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
00038 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
00039
00040 class VTK_IO_EXPORT vtkImageReader2 : public vtkImageSource
00041 {
00042 public:
00043 static vtkImageReader2 *New();
00044 vtkTypeRevisionMacro(vtkImageReader2,vtkImageSource);
00045 void PrintSelf(ostream& os, vtkIndent indent);
00046
00048
00051 virtual void SetFileName(const char *);
00052 vtkGetStringMacro(FileName);
00054
00056
00059 virtual void SetFilePrefix(const char *);
00060 vtkGetStringMacro(FilePrefix);
00062
00064
00065 virtual void SetFilePattern(const char *);
00066 vtkGetStringMacro(FilePattern);
00068
00070
00073 virtual void SetDataScalarType(int type);
00074 virtual void SetDataScalarTypeToFloat(){this->SetDataScalarType(VTK_FLOAT);}
00075 virtual void SetDataScalarTypeToDouble(){this->SetDataScalarType(VTK_DOUBLE);}
00076 virtual void SetDataScalarTypeToInt(){this->SetDataScalarType(VTK_INT);}
00077 virtual void SetDataScalarTypeToShort(){this->SetDataScalarType(VTK_SHORT);}
00078 virtual void SetDataScalarTypeToUnsignedShort()
00079 {this->SetDataScalarType(VTK_UNSIGNED_SHORT);}
00080 virtual void SetDataScalarTypeToUnsignedChar()
00081 {this->SetDataScalarType(VTK_UNSIGNED_CHAR);}
00083
00085
00086 vtkGetMacro(DataScalarType, int);
00088
00090
00091 vtkSetMacro(NumberOfScalarComponents,int);
00092 vtkGetMacro(NumberOfScalarComponents,int);
00094
00096
00097 vtkSetVector6Macro(DataExtent,int);
00098 vtkGetVector6Macro(DataExtent,int);
00100
00102
00103 vtkSetMacro(FileDimensionality, int);
00104 int GetFileDimensionality() {return this->FileDimensionality;}
00106
00108
00109 vtkSetVector3Macro(DataSpacing,float);
00110 vtkGetVector3Macro(DataSpacing,float);
00112
00114
00115 vtkSetVector3Macro(DataOrigin,float);
00116 vtkGetVector3Macro(DataOrigin,float);
00118
00120
00121 unsigned long GetHeaderSize();
00122 unsigned long GetHeaderSize(unsigned long slice);
00124
00127 virtual void SetHeaderSize(unsigned long size);
00128
00130
00140 virtual void SetDataByteOrderToBigEndian();
00141 virtual void SetDataByteOrderToLittleEndian();
00142 virtual int GetDataByteOrder();
00143 virtual void SetDataByteOrder(int);
00144 virtual const char *GetDataByteOrderAsString();
00146
00148
00150 vtkSetMacro(FileNameSliceOffset,int);
00151 vtkGetMacro(FileNameSliceOffset,int);
00153
00155
00158 vtkSetMacro(FileNameSliceSpacing,int);
00159 vtkGetMacro(FileNameSliceSpacing,int);
00161
00162
00164
00165 vtkSetMacro(SwapBytes,int);
00166 virtual int GetSwapBytes() {return this->SwapBytes;}
00167 vtkBooleanMacro(SwapBytes,int);
00169
00170
00171 ifstream *GetFile() {return this->File;}
00172 vtkGetVectorMacro(DataIncrements,unsigned long,4);
00173
00174
00175 virtual int OpenFile();
00176 virtual void SeekFile(int i, int j, int k);
00177
00179
00181 vtkBooleanMacro(FileLowerLeft, int);
00182 vtkGetMacro(FileLowerLeft, int);
00183 vtkSetMacro(FileLowerLeft, int);
00185
00187
00188 virtual void ComputeInternalFileName(int slice);
00189 vtkGetStringMacro(InternalFileName);
00191
00192 #ifndef VTK_REMOVE_LEGACY_CODE
00193
00194 virtual vtkImageReader2* MakeObject();
00195 #endif
00196
00198
00204 virtual int CanReadFile(const char* vtkNotUsed(fname))
00205 {
00206 return 0;
00207 }
00209
00211
00213 virtual const char* GetFileExensions()
00214 {
00215 return 0;
00216 }
00218
00220
00222 virtual const char* GetDescriptiveName()
00223 {
00224 return 0;
00225 }
00227 protected:
00228 vtkImageReader2();
00229 ~vtkImageReader2();
00230
00231 char *InternalFileName;
00232 char *FileName;
00233 char *FilePrefix;
00234 char *FilePattern;
00235 int NumberOfScalarComponents;
00236 int FileLowerLeft;
00237
00238 ifstream *File;
00239 unsigned long DataIncrements[4];
00240 int DataExtent[6];
00241 int SwapBytes;
00242
00243 int FileDimensionality;
00244 unsigned long HeaderSize;
00245 int DataScalarType;
00246 unsigned long ManualHeaderSize;
00247
00248 float DataSpacing[3];
00249 float DataOrigin[3];
00250
00251 int FileNameSliceOffset;
00252 int FileNameSliceSpacing;
00253
00254 virtual void ExecuteInformation();
00255 virtual void ExecuteData(vtkDataObject *data);
00256 virtual void ComputeDataIncrements();
00257 private:
00258 vtkImageReader2(const vtkImageReader2&);
00259 void operator=(const vtkImageReader2&);
00260 };
00261
00262 #endif