• Main Page
  • Related Pages
  • Namespaces
  • Classes
  • Files
  • File List
  • File Members

dox/IO/vtkImageReader2.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkImageReader2.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00031 #ifndef __vtkImageReader2_h
00032 #define __vtkImageReader2_h
00033 
00034 #include "vtkImageAlgorithm.h"
00035 
00036 class vtkStringArray;
00037 
00038 #define VTK_FILE_BYTE_ORDER_BIG_ENDIAN 0
00039 #define VTK_FILE_BYTE_ORDER_LITTLE_ENDIAN 1
00040 
00041 class VTK_IO_EXPORT vtkImageReader2 : public vtkImageAlgorithm
00042 {
00043 public:
00044   static vtkImageReader2 *New();
00045   vtkTypeRevisionMacro(vtkImageReader2,vtkImageAlgorithm);
00046   void PrintSelf(ostream& os, vtkIndent indent);   
00047 
00049 
00051   virtual void SetFileName(const char *);
00052   vtkGetStringMacro(FileName);
00054 
00056 
00060   virtual void SetFileNames(vtkStringArray *);
00061   vtkGetObjectMacro(FileNames, vtkStringArray);
00063 
00065 
00069   virtual void SetFilePrefix(const char *);
00070   vtkGetStringMacro(FilePrefix);
00072 
00074 
00076   virtual void SetFilePattern(const char *);
00077   vtkGetStringMacro(FilePattern);
00079 
00081 
00084   virtual void SetDataScalarType(int type);
00085   virtual void SetDataScalarTypeToFloat(){this->SetDataScalarType(VTK_FLOAT);}
00086   virtual void SetDataScalarTypeToDouble(){this->SetDataScalarType(VTK_DOUBLE);}
00087   virtual void SetDataScalarTypeToInt(){this->SetDataScalarType(VTK_INT);}
00088   virtual void SetDataScalarTypeToUnsignedInt(){this->SetDataScalarType(VTK_UNSIGNED_INT);}
00089   virtual void SetDataScalarTypeToShort(){this->SetDataScalarType(VTK_SHORT);}
00090   virtual void SetDataScalarTypeToUnsignedShort()
00091     {this->SetDataScalarType(VTK_UNSIGNED_SHORT);}
00092   virtual void SetDataScalarTypeToChar()
00093     {this->SetDataScalarType(VTK_CHAR);}
00094   virtual void SetDataScalarTypeToSignedChar()
00095     {this->SetDataScalarType(VTK_SIGNED_CHAR);}
00096   virtual void SetDataScalarTypeToUnsignedChar()
00097     {this->SetDataScalarType(VTK_UNSIGNED_CHAR);}
00099 
00101 
00102   vtkGetMacro(DataScalarType, int);
00104 
00106 
00107   vtkSetMacro(NumberOfScalarComponents,int);
00108   vtkGetMacro(NumberOfScalarComponents,int);
00110   
00112 
00113   vtkSetVector6Macro(DataExtent,int);
00114   vtkGetVector6Macro(DataExtent,int);
00116   
00118 
00119   vtkSetMacro(FileDimensionality, int);
00120   int GetFileDimensionality() {return this->FileDimensionality;}
00122   
00124 
00125   vtkSetVector3Macro(DataSpacing,double);
00126   vtkGetVector3Macro(DataSpacing,double);
00128   
00130 
00131   vtkSetVector3Macro(DataOrigin,double);
00132   vtkGetVector3Macro(DataOrigin,double);
00134 
00136 
00137   unsigned long GetHeaderSize();
00138   unsigned long GetHeaderSize(unsigned long slice);
00140 
00143   virtual void SetHeaderSize(unsigned long size);
00144   
00146 
00156   virtual void SetDataByteOrderToBigEndian();
00157   virtual void SetDataByteOrderToLittleEndian();
00158   virtual int GetDataByteOrder();
00159   virtual void SetDataByteOrder(int);
00160   virtual const char *GetDataByteOrderAsString();
00162 
00164 
00166   vtkSetMacro(FileNameSliceOffset,int);
00167   vtkGetMacro(FileNameSliceOffset,int);
00169 
00171 
00174   vtkSetMacro(FileNameSliceSpacing,int);
00175   vtkGetMacro(FileNameSliceSpacing,int);
00177 
00178 
00180 
00181   vtkSetMacro(SwapBytes,int);
00182   virtual int GetSwapBytes() {return this->SwapBytes;}
00183   vtkBooleanMacro(SwapBytes,int);
00185 
00186 //BTX
00187   ifstream *GetFile() {return this->File;}
00188   vtkGetVectorMacro(DataIncrements,unsigned long,4);
00189 //ETX
00190 
00191   virtual int OpenFile();
00192   virtual void SeekFile(int i, int j, int k);
00193 
00195 
00197   vtkBooleanMacro(FileLowerLeft, int);
00198   vtkGetMacro(FileLowerLeft, int);
00199   vtkSetMacro(FileLowerLeft, int);
00201 
00203 
00204   virtual void ComputeInternalFileName(int slice);
00205   vtkGetStringMacro(InternalFileName);
00207   
00209 
00215   virtual int CanReadFile(const char* vtkNotUsed(fname))
00216     {
00217       return 0;
00218     }
00220 
00222 
00224   virtual const char* GetFileExtensions()
00225     {
00226       return 0;
00227     }
00229 
00231 
00233   virtual const char* GetDescriptiveName()
00234     {
00235       return 0;
00236     }
00238 protected:
00239   vtkImageReader2();
00240   ~vtkImageReader2();
00241 
00242   vtkStringArray *FileNames;
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   double DataSpacing[3];
00262   double DataOrigin[3];
00263 
00264   int FileNameSliceOffset;
00265   int FileNameSliceSpacing;
00266   
00267   virtual int RequestInformation(vtkInformation* request,
00268                                  vtkInformationVector** inputVector,
00269                                  vtkInformationVector* outputVector);
00270   virtual void ExecuteInformation();
00271   virtual void ExecuteData(vtkDataObject *data);
00272   virtual void ComputeDataIncrements();
00273 private:
00274   vtkImageReader2(const vtkImageReader2&);  // Not implemented.
00275   void operator=(const vtkImageReader2&);  // Not implemented.
00276 };
00277 
00278 #endif

Generated by  doxygen 1.7.1