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