Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/IO/vtkImageReader2.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageReader2.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 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 //BTX 00171 ifstream *GetFile() {return this->File;} 00172 vtkGetVectorMacro(DataIncrements,unsigned long,4); 00173 //ETX 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&); // Not implemented. 00259 void operator=(const vtkImageReader2&); // Not implemented. 00260 }; 00261 00262 #endif