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

dox/IO/vtkDataReader.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkDataReader.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 =========================================================================*/
00028 #ifndef __vtkDataReader_h
00029 #define __vtkDataReader_h
00030 
00031 #include "vtkAlgorithm.h"
00032 
00033 #define VTK_ASCII 1
00034 #define VTK_BINARY 2
00035 
00036 class vtkAbstractArray;
00037 class vtkCharArray;
00038 class vtkDataSet;
00039 class vtkDataSetAttributes;
00040 class vtkFieldData;
00041 class vtkGraph;
00042 class vtkPointSet;
00043 class vtkRectilinearGrid;
00044 class vtkTable;
00045 
00046 class VTK_IO_EXPORT vtkDataReader : public vtkAlgorithm
00047 {
00048 public:
00049   static vtkDataReader *New();
00050   vtkTypeRevisionMacro(vtkDataReader,vtkAlgorithm);
00051   void PrintSelf(ostream& os, vtkIndent indent);
00052 
00054 
00055   vtkSetStringMacro(FileName);
00056   vtkGetStringMacro(FileName);
00058 
00060 
00062   int IsFileValid(const char *dstype);
00063   int IsFileStructuredPoints() {
00064     return this->IsFileValid("structured_points");};  
00065   int IsFilePolyData() {
00066     return this->IsFileValid("polydata");};  
00067   int IsFileStructuredGrid() {
00068     return this->IsFileValid("structured_grid");};  
00069   int IsFileUnstructuredGrid() {
00070     return this->IsFileValid("unstructured_grid");};  
00071   int IsFileRectilinearGrid() {
00072     return this->IsFileValid("rectilinear_grid");};
00074   
00076 
00080   void SetInputString(const char *in);
00081   vtkGetStringMacro(InputString);
00082   void SetInputString(const char *in, int len);
00083   vtkGetMacro(InputStringLength, int);
00084   void SetBinaryInputString(const char *, int len);
00086 
00088 
00094   virtual void SetInputArray(vtkCharArray*);
00095   vtkGetObjectMacro(InputArray, vtkCharArray);
00097     
00099 
00100   vtkGetStringMacro(Header);
00102 
00104 
00106   vtkSetMacro(ReadFromInputString,int);
00107   vtkGetMacro(ReadFromInputString,int);
00108   vtkBooleanMacro(ReadFromInputString,int);
00110 
00112 
00114   vtkGetMacro(FileType,int);
00116 
00118 
00122   int GetNumberOfScalarsInFile()
00123     {this->CharacterizeFile(); return this->NumberOfScalarsInFile;}
00124   int GetNumberOfVectorsInFile()
00125     {this->CharacterizeFile(); return this->NumberOfVectorsInFile;}
00126   int GetNumberOfTensorsInFile()
00127     {this->CharacterizeFile(); return this->NumberOfTensorsInFile;}
00128   int GetNumberOfNormalsInFile()
00129     {this->CharacterizeFile(); return this->NumberOfNormalsInFile;}
00130   int GetNumberOfTCoordsInFile()
00131     {this->CharacterizeFile(); return this->NumberOfTCoordsInFile;}
00132   int GetNumberOfFieldDataInFile()
00133     {this->CharacterizeFile(); return this->NumberOfFieldDataInFile;}
00135   
00137 
00140   const char *GetScalarsNameInFile(int i);
00141   const char *GetVectorsNameInFile(int i);
00142   const char *GetTensorsNameInFile(int i);
00143   const char *GetNormalsNameInFile(int i);
00144   const char *GetTCoordsNameInFile(int i);
00145   const char *GetFieldDataNameInFile(int i);
00147   
00149 
00151   vtkSetStringMacro(ScalarsName);
00152   vtkGetStringMacro(ScalarsName);
00154 
00156 
00158   vtkSetStringMacro(VectorsName);
00159   vtkGetStringMacro(VectorsName);
00161 
00163 
00165   vtkSetStringMacro(TensorsName);
00166   vtkGetStringMacro(TensorsName);
00168 
00170 
00172   vtkSetStringMacro(NormalsName);
00173   vtkGetStringMacro(NormalsName);
00175 
00177 
00179   vtkSetStringMacro(TCoordsName);
00180   vtkGetStringMacro(TCoordsName);
00182 
00184 
00187   vtkSetStringMacro(LookupTableName);
00188   vtkGetStringMacro(LookupTableName);
00190 
00192 
00194   vtkSetStringMacro(FieldDataName);
00195   vtkGetStringMacro(FieldDataName);
00197 
00199 
00200   vtkSetMacro(ReadAllScalars,int);
00201   vtkGetMacro(ReadAllScalars,int);
00202   vtkBooleanMacro(ReadAllScalars,int);
00204 
00206 
00207   vtkSetMacro(ReadAllVectors,int);
00208   vtkGetMacro(ReadAllVectors,int);
00209   vtkBooleanMacro(ReadAllVectors,int);
00211 
00213 
00214   vtkSetMacro(ReadAllNormals,int);
00215   vtkGetMacro(ReadAllNormals,int);
00216   vtkBooleanMacro(ReadAllNormals,int);
00218 
00220 
00221   vtkSetMacro(ReadAllTensors,int);
00222   vtkGetMacro(ReadAllTensors,int);
00223   vtkBooleanMacro(ReadAllTensors,int);
00225 
00227 
00228   vtkSetMacro(ReadAllColorScalars,int);
00229   vtkGetMacro(ReadAllColorScalars,int);
00230   vtkBooleanMacro(ReadAllColorScalars,int);
00232 
00234 
00235   vtkSetMacro(ReadAllTCoords,int);
00236   vtkGetMacro(ReadAllTCoords,int);
00237   vtkBooleanMacro(ReadAllTCoords,int);
00239 
00241 
00242   vtkSetMacro(ReadAllFields,int);
00243   vtkGetMacro(ReadAllFields,int);
00244   vtkBooleanMacro(ReadAllFields,int);
00246 
00248   int OpenVTKFile();
00249 
00251   int ReadHeader();
00252 
00256   int ReadCellData(vtkDataSet *ds, int numCells);
00257 
00261   int ReadPointData(vtkDataSet *ds, int numPts);
00262 
00264   int ReadPoints(vtkPointSet *ps, int numPts);
00265 
00267   int ReadPoints(vtkGraph *g, int numPts);
00268 
00272   int ReadVertexData(vtkGraph *g, int numVertices);
00273 
00277   int ReadEdgeData(vtkGraph *g, int numEdges);
00278 
00280   int ReadRowData(vtkTable *t, int numEdges);
00281 
00283   int ReadCells(int size, int *data);
00284 
00286   int ReadCells(int size, int *data, int skip1, int read2, int skip3);
00287 
00290   int ReadCoordinates(vtkRectilinearGrid *rg, int axes, int numCoords);
00291 
00293 
00294   vtkAbstractArray *ReadArray(const char *dataType, int numTuples, int numComp);
00295   vtkFieldData *ReadFieldData();
00297 
00298 //BTX  
00300 
00302   int Read(char *);
00303   int Read(unsigned char *);
00304   int Read(short *);
00305   int Read(unsigned short *);
00306   int Read(int *);
00307   int Read(unsigned int *);
00308   int Read(long *);
00309   int Read(unsigned long *);
00310 #if defined(VTK_TYPE_USE___INT64)
00311   int Read(__int64 *result);
00312   int Read(unsigned __int64 *result);
00314 #endif
00315 #if defined(VTK_TYPE_USE_LONG_LONG)
00316   int Read(long long *result);
00317   int Read(unsigned long long *result);
00318 #endif
00319   int Read(float *);
00320   int Read(double *);  
00321 //ETX
00322 
00324   void CloseVTKFile();
00325 
00326 //BTX
00329   int ReadLine(char result[256]);
00330 
00333   int ReadString(char result[256]);
00334 
00336   char *LowerCase(char *str, const size_t len=256);
00337   
00339   istream *GetIStream() {return this->IS;};
00340 //ETX
00341 
00344   virtual int ReadMetaData(vtkInformation *) { return 1; }
00345 
00346 protected:
00347   vtkDataReader();
00348   ~vtkDataReader();
00349 
00350   char *FileName;
00351   int FileType;
00352   istream *IS;
00353 
00354   char *ScalarsName;
00355   char *VectorsName;
00356   char *TensorsName;
00357   char *TCoordsName;
00358   char *NormalsName;
00359   char *LookupTableName;
00360   char *FieldDataName;
00361   char *ScalarLut;
00362 
00363   int ReadFromInputString;
00364   char *InputString;
00365   int InputStringLength;
00366   int InputStringPos;
00367 
00368   void SetScalarLut(const char* lut);
00369   vtkGetStringMacro(ScalarLut);
00370 
00371   char *Header;
00372 
00373   int ReadScalarData(vtkDataSetAttributes *a, int num);
00374   int ReadVectorData(vtkDataSetAttributes *a, int num);
00375   int ReadNormalData(vtkDataSetAttributes *a, int num);
00376   int ReadTensorData(vtkDataSetAttributes *a, int num);
00377   int ReadCoScalarData(vtkDataSetAttributes *a, int num);
00378   int ReadLutData(vtkDataSetAttributes *a);
00379   int ReadTCoordsData(vtkDataSetAttributes *a, int num);
00380   int ReadGlobalIds(vtkDataSetAttributes *a, int num);
00381   int ReadPedigreeIds(vtkDataSetAttributes *a, int num);
00382 
00383   int ReadDataSetData(vtkDataSet *ds);
00384 
00385   // This supports getting additional information from vtk files
00386   int  NumberOfScalarsInFile;
00387   char **ScalarsNameInFile;
00388   int ScalarsNameAllocSize;
00389   int  NumberOfVectorsInFile;
00390   char **VectorsNameInFile;
00391   int VectorsNameAllocSize;
00392   int  NumberOfTensorsInFile;
00393   char **TensorsNameInFile;
00394   int TensorsNameAllocSize;
00395   int  NumberOfTCoordsInFile;
00396   char **TCoordsNameInFile;
00397   int TCoordsNameAllocSize;
00398   int  NumberOfNormalsInFile;
00399   char **NormalsNameInFile;
00400   int NormalsNameAllocSize;
00401   int  NumberOfFieldDataInFile;
00402   char **FieldDataNameInFile;
00403   int FieldDataNameAllocSize;
00404   vtkTimeStamp CharacteristicsTime;
00405  
00406   int ReadAllScalars;
00407   int ReadAllVectors;
00408   int ReadAllNormals;
00409   int ReadAllTensors;
00410   int ReadAllColorScalars;
00411   int ReadAllTCoords;
00412   int ReadAllFields;
00413 
00414   void InitializeCharacteristics();
00415   int CharacterizeFile(); //read entire file, storing important characteristics
00416   void CheckFor(const char* name, char *line, int &num, char** &array, 
00417                 int& allocSize);
00418 
00419   vtkCharArray* InputArray;
00420 
00423   int DecodeString(char *resname, const char* name);
00424 
00425   virtual int ProcessRequest(vtkInformation *, vtkInformationVector **,
00426                              vtkInformationVector *);
00427   virtual int RequestData(vtkInformation *, vtkInformationVector **,
00428                           vtkInformationVector *)
00429     { return 1; }
00430   virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **,
00431                                   vtkInformationVector *)
00432     { return 1; }
00433   virtual int RequestInformation(vtkInformation *, vtkInformationVector **,
00434                                  vtkInformationVector *)
00435     { return 1; }
00436 
00437 private:
00438   vtkDataReader(const vtkDataReader&);  // Not implemented.
00439   void operator=(const vtkDataReader&);  // Not implemented.
00440 };
00441 
00442 #endif
00443 
00444 

Generated by  doxygen 1.7.1