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
00045 #ifndef __vtkImageReader2_h
00046 #define __vtkImageReader2_h
00047
00048 #include "vtkImageSource.h"
00049
00050 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
00051 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
00052
00053 class VTK_IO_EXPORT vtkImageReader2 : public vtkImageSource
00054 {
00055 public:
00056 static vtkImageReader2 *New();
00057 vtkTypeRevisionMacro(vtkImageReader2,vtkImageSource);
00058 void PrintSelf(ostream& os, vtkIndent indent);
00059
00061
00064 virtual void SetFileName(const char *);
00065 vtkGetStringMacro(FileName);
00067
00069
00072 virtual void SetFilePrefix(const char *);
00073 vtkGetStringMacro(FilePrefix);
00075
00077
00078 virtual void SetFilePattern(const char *);
00079 vtkGetStringMacro(FilePattern);
00081
00083
00086 virtual void SetDataScalarType(int type);
00087 virtual void SetDataScalarTypeToFloat(){this->SetDataScalarType(VTK_FLOAT);}
00088 virtual void SetDataScalarTypeToDouble(){this->SetDataScalarType(VTK_DOUBLE);}
00089 virtual void SetDataScalarTypeToInt(){this->SetDataScalarType(VTK_INT);}
00090 virtual void SetDataScalarTypeToShort(){this->SetDataScalarType(VTK_SHORT);}
00091 virtual void SetDataScalarTypeToUnsignedShort()
00092 {this->SetDataScalarType(VTK_UNSIGNED_SHORT);}
00093 virtual void SetDataScalarTypeToUnsignedChar()
00094 {this->SetDataScalarType(VTK_UNSIGNED_CHAR);}
00096
00098
00099 vtkGetMacro(DataScalarType, int);
00101
00103
00104 vtkSetMacro(NumberOfScalarComponents,int);
00105 vtkGetMacro(NumberOfScalarComponents,int);
00107
00109
00110 vtkSetVector6Macro(DataExtent,int);
00111 vtkGetVector6Macro(DataExtent,int);
00113
00115
00116 vtkSetMacro(FileDimensionality, int);
00117 int GetFileDimensionality() {return this->FileDimensionality;}
00119
00121
00122 vtkSetVector3Macro(DataSpacing,float);
00123 vtkGetVector3Macro(DataSpacing,float);
00125
00127
00128 vtkSetVector3Macro(DataOrigin,float);
00129 vtkGetVector3Macro(DataOrigin,float);
00131
00133
00134 unsigned long GetHeaderSize();
00135 unsigned long GetHeaderSize(unsigned long slice);
00137
00140 virtual void SetHeaderSize(unsigned long size);
00141
00143
00153 virtual void SetDataByteOrderToBigEndian();
00154 virtual void SetDataByteOrderToLittleEndian();
00155 virtual int GetDataByteOrder();
00156 virtual void SetDataByteOrder(int);
00157 virtual const char *GetDataByteOrderAsString();
00159
00161
00163 vtkSetMacro(FileNameSliceOffset,int);
00164 vtkGetMacro(FileNameSliceOffset,int);
00166
00168
00171 vtkSetMacro(FileNameSliceSpacing,int);
00172 vtkGetMacro(FileNameSliceSpacing,int);
00174
00175
00177
00178 vtkSetMacro(SwapBytes,int);
00179 virtual int GetSwapBytes() {return this->SwapBytes;}
00180 vtkBooleanMacro(SwapBytes,int);
00182
00183
00184 ifstream *GetFile() {return this->File;}
00185 vtkGetVectorMacro(DataIncrements,unsigned long,4);
00186
00187
00188 virtual int OpenFile();
00189 virtual void SeekFile(int i, int j, int k);
00190
00192
00194 vtkBooleanMacro(FileLowerLeft, int);
00195 vtkGetMacro(FileLowerLeft, int);
00196 vtkSetMacro(FileLowerLeft, int);
00198
00200
00201 virtual void ComputeInternalFileName(int slice);
00202 vtkGetStringMacro(InternalFileName);
00204
00205 #ifndef VTK_REMOVE_LEGACY_CODE
00206
00207 virtual vtkImageReader2* MakeObject();
00208 #endif
00209
00211
00217 virtual int CanReadFile(const char* vtkNotUsed(fname))
00218 {
00219 return 0;
00220 }
00222
00224
00226 virtual const char* GetFileExensions()
00227 {
00228 return 0;
00229 }
00231
00233
00235 virtual const char* GetDescriptiveName()
00236 {
00237 return 0;
00238 }
00240 protected:
00241 vtkImageReader2();
00242 ~vtkImageReader2();
00243
00244 char *InternalFileName;
00245 char *FileName;
00246 char *FilePrefix;
00247 char *FilePattern;
00248 int NumberOfScalarComponents;
00249 int FileLowerLeft;
00250
00251 ifstream *File;
00252 unsigned long DataIncrements[4];
00253 int DataExtent[6];
00254 int SwapBytes;
00255
00256 int FileDimensionality;
00257 unsigned long HeaderSize;
00258 int DataScalarType;
00259 unsigned long ManualHeaderSize;
00260
00261 float DataSpacing[3];
00262 float DataOrigin[3];
00263
00264 int FileNameSliceOffset;
00265 int FileNameSliceSpacing;
00266
00267 virtual void ExecuteInformation();
00268 virtual void ExecuteData(vtkDataObject *data);
00269 virtual void ComputeDataIncrements();
00270 private:
00271 vtkImageReader2(const vtkImageReader2&);
00272 void operator=(const vtkImageReader2&);
00273 };
00274
00275 #endif