VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
vtkDataReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDataReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
28 #ifndef __vtkDataReader_h
29 #define __vtkDataReader_h
30 
31 #include "vtkIOLegacyModule.h" // For export macro
32 #include "vtkAlgorithm.h"
33 #include "vtkStdString.h" // For API using strings
34 
35 #define VTK_ASCII 1
36 #define VTK_BINARY 2
37 
38 class vtkAbstractArray;
39 class vtkCharArray;
40 class vtkDataSet;
42 class vtkFieldData;
43 class vtkGraph;
44 class vtkPointSet;
45 class vtkRectilinearGrid;
46 class vtkTable;
47 
49 {
50 public:
51  static vtkDataReader *New();
52  vtkTypeMacro(vtkDataReader,vtkAlgorithm);
53  void PrintSelf(ostream& os, vtkIndent indent);
54 
56 
57  vtkSetStringMacro(FileName);
58  vtkGetStringMacro(FileName);
60 
62 
64  int IsFileValid(const char *dstype);
66  return this->IsFileValid("structured_points");};
68  return this->IsFileValid("polydata");};
70  return this->IsFileValid("structured_grid");};
72  return this->IsFileValid("unstructured_grid");};
74  return this->IsFileValid("rectilinear_grid");};
76 
78 
82  void SetInputString(const char *in);
83  vtkGetStringMacro(InputString);
84  void SetInputString(const char *in, int len);
85  vtkGetMacro(InputStringLength, int);
86  void SetBinaryInputString(const char *, int len);
88  { this->SetBinaryInputString(input.c_str(), static_cast<int>(input.length())); }
90 
92 
98  virtual void SetInputArray(vtkCharArray*);
99  vtkGetObjectMacro(InputArray, vtkCharArray);
101 
103 
104  vtkGetStringMacro(Header);
106 
108 
110  vtkSetMacro(ReadFromInputString,int);
111  vtkGetMacro(ReadFromInputString,int);
112  vtkBooleanMacro(ReadFromInputString,int);
114 
116 
118  vtkGetMacro(FileType,int);
120 
122 
127  {this->CharacterizeFile(); return this->NumberOfScalarsInFile;}
129  {this->CharacterizeFile(); return this->NumberOfVectorsInFile;}
131  {this->CharacterizeFile(); return this->NumberOfTensorsInFile;}
133  {this->CharacterizeFile(); return this->NumberOfNormalsInFile;}
135  {this->CharacterizeFile(); return this->NumberOfTCoordsInFile;}
137  {this->CharacterizeFile(); return this->NumberOfFieldDataInFile;}
139 
141 
144  const char *GetScalarsNameInFile(int i);
145  const char *GetVectorsNameInFile(int i);
146  const char *GetTensorsNameInFile(int i);
147  const char *GetNormalsNameInFile(int i);
148  const char *GetTCoordsNameInFile(int i);
149  const char *GetFieldDataNameInFile(int i);
151 
153 
155  vtkSetStringMacro(ScalarsName);
156  vtkGetStringMacro(ScalarsName);
158 
160 
162  vtkSetStringMacro(VectorsName);
163  vtkGetStringMacro(VectorsName);
165 
167 
169  vtkSetStringMacro(TensorsName);
170  vtkGetStringMacro(TensorsName);
172 
174 
176  vtkSetStringMacro(NormalsName);
177  vtkGetStringMacro(NormalsName);
179 
181 
183  vtkSetStringMacro(TCoordsName);
184  vtkGetStringMacro(TCoordsName);
186 
188 
191  vtkSetStringMacro(LookupTableName);
192  vtkGetStringMacro(LookupTableName);
194 
196 
198  vtkSetStringMacro(FieldDataName);
199  vtkGetStringMacro(FieldDataName);
201 
203 
204  vtkSetMacro(ReadAllScalars,int);
205  vtkGetMacro(ReadAllScalars,int);
206  vtkBooleanMacro(ReadAllScalars,int);
208 
210 
211  vtkSetMacro(ReadAllVectors,int);
212  vtkGetMacro(ReadAllVectors,int);
213  vtkBooleanMacro(ReadAllVectors,int);
215 
217 
218  vtkSetMacro(ReadAllNormals,int);
219  vtkGetMacro(ReadAllNormals,int);
220  vtkBooleanMacro(ReadAllNormals,int);
222 
224 
225  vtkSetMacro(ReadAllTensors,int);
226  vtkGetMacro(ReadAllTensors,int);
227  vtkBooleanMacro(ReadAllTensors,int);
229 
231 
232  vtkSetMacro(ReadAllColorScalars,int);
233  vtkGetMacro(ReadAllColorScalars,int);
234  vtkBooleanMacro(ReadAllColorScalars,int);
236 
238 
239  vtkSetMacro(ReadAllTCoords,int);
240  vtkGetMacro(ReadAllTCoords,int);
241  vtkBooleanMacro(ReadAllTCoords,int);
243 
245 
246  vtkSetMacro(ReadAllFields,int);
247  vtkGetMacro(ReadAllFields,int);
248  vtkBooleanMacro(ReadAllFields,int);
250 
252  int OpenVTKFile();
253 
255  int ReadHeader();
256 
260  int ReadCellData(vtkDataSet *ds, int numCells);
261 
265  int ReadPointData(vtkDataSet *ds, int numPts);
266 
268  int ReadPoints(vtkPointSet *ps, int numPts);
269 
271  int ReadPoints(vtkGraph *g, int numPts);
272 
276  int ReadVertexData(vtkGraph *g, int numVertices);
277 
281  int ReadEdgeData(vtkGraph *g, int numEdges);
282 
284  int ReadRowData(vtkTable *t, int numEdges);
285 
287  int ReadCells(int size, int *data);
288 
290  int ReadCells(int size, int *data, int skip1, int read2, int skip3);
291 
294  int ReadCoordinates(vtkRectilinearGrid *rg, int axes, int numCoords);
295 
297 
298  vtkAbstractArray *ReadArray(const char *dataType, int numTuples, int numComp);
299  vtkFieldData *ReadFieldData();
301 
302 //BTX
304 
306  int Read(char *);
307  int Read(unsigned char *);
308  int Read(short *);
309  int Read(unsigned short *);
310  int Read(int *);
311  int Read(unsigned int *);
312  int Read(long *);
313  int Read(unsigned long *);
314 #if defined(VTK_TYPE_USE___INT64)
315  int Read(__int64 *result);
316  int Read(unsigned __int64 *result);
317 #endif
318 #if defined(VTK_TYPE_USE_LONG_LONG)
319  int Read(long long *result);
320  int Read(unsigned long long *result);
321 #endif
322  int Read(float *);
323  int Read(double *);
324 //ETX
326 
328  void CloseVTKFile();
329 
330 //BTX
333  int ReadLine(char result[256]);
334 
337  int ReadString(char result[256]);
338 
340  char *LowerCase(char *str, const size_t len=256);
341 
343 
344  istream *GetIStream() {return this->IS;};
345 //ETX
347 
350  virtual int ReadMetaData(vtkInformation *) { return 1; }
351 
352 protected:
353  vtkDataReader();
354  ~vtkDataReader();
355 
356  char *FileName;
357  int FileType;
358  istream *IS;
359 
360  char *ScalarsName;
361  char *VectorsName;
362  char *TensorsName;
363  char *TCoordsName;
364  char *NormalsName;
367  char *ScalarLut;
368 
370  char *InputString;
373 
374  void SetScalarLut(const char* lut);
375  vtkGetStringMacro(ScalarLut);
376 
377  char *Header;
378 
379  int ReadScalarData(vtkDataSetAttributes *a, int num);
380  int ReadVectorData(vtkDataSetAttributes *a, int num);
381  int ReadNormalData(vtkDataSetAttributes *a, int num);
382  int ReadTensorData(vtkDataSetAttributes *a, int num);
383  int ReadCoScalarData(vtkDataSetAttributes *a, int num);
384  int ReadLutData(vtkDataSetAttributes *a);
385  int ReadTCoordsData(vtkDataSetAttributes *a, int num);
386  int ReadGlobalIds(vtkDataSetAttributes *a, int num);
387  int ReadPedigreeIds(vtkDataSetAttributes *a, int num);
388 
389  int ReadDataSetData(vtkDataSet *ds);
390 
391  // This supports getting additional information from vtk files
411 
419 
420  void InitializeCharacteristics();
421  int CharacterizeFile(); //read entire file, storing important characteristics
422  void CheckFor(const char* name, char *line, int &num, char** &array,
423  int& allocSize);
424 
426 
429  int DecodeString(char *resname, const char* name);
430 
435  { return 1; }
438  { return 1; }
441  { return 1; }
442 
443 private:
444  vtkDataReader(const vtkDataReader&); // Not implemented.
445  void operator=(const vtkDataReader&); // Not implemented.
446 };
447 
448 #endif
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: vtkgl.h:11339
GLsizeiptr size
Definition: vtkgl.h:11843
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:46
int GetNumberOfScalarsInFile()
a dataset that is topologically regular with variable spacing in the three coordinate directions ...
int NumberOfScalarsInFile
char * FieldDataName
Store vtkAlgorithm input/output information.
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
abstract class to specify dataset behavior
Definition: vtkDataSet.h:60
Abstract superclass for all arrays.
void SetInputString(const vtkStdString &input)
Definition: vtkDataReader.h:87
int IsFilePolyData()
Definition: vtkDataReader.h:67
char ** ScalarsNameInFile
int IsFileRectilinearGrid()
Definition: vtkDataReader.h:73
record modification and/or execution time
Definition: vtkTimeStamp.h:34
int NumberOfTensorsInFile
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
int NumberOfFieldDataInFile
GLenum GLsizei len
Definition: vtkgl.h:13010
virtual int ProcessRequest(vtkInformation *request, vtkInformationVector **inInfo, vtkInformationVector *outInfo)
int GetNumberOfTCoordsInFile()
char * LookupTableName
char * NormalsName
int GetNumberOfNormalsInFile()
GLuint in
Definition: vtkgl.h:16905
abstract class for specifying dataset behavior
Definition: vtkPointSet.h:41
int NormalsNameAllocSize
GLdouble GLdouble t
Definition: vtkgl.h:11602
int IsFileStructuredGrid()
Definition: vtkDataReader.h:69
int TensorsNameAllocSize
#define VTKIOLEGACY_EXPORT
vtkTimeStamp CharacteristicsTime
GLuint GLuint num
Definition: vtkgl.h:16907
char ** TensorsNameInFile
int GetNumberOfFieldDataInFile()
Base class for graph data types.
Definition: vtkGraph.h:288
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:42
helper superclass for objects that read vtk data files
Definition: vtkDataReader.h:48
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:61
GLuint const GLchar * name
Definition: vtkgl.h:11983
char * ScalarsName
int TCoordsNameAllocSize
a simple class to control print indentation
Definition: vtkIndent.h:38
istream * GetIStream()
char ** FieldDataNameInFile
int ScalarsNameAllocSize
represent and manipulate attribute data in a dataset
int NumberOfNormalsInFile
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
GLboolean GLboolean GLboolean GLboolean a
Definition: vtkgl.h:12312
char * TensorsName
int GetNumberOfVectorsInFile()
GLuint64EXT * result
Definition: vtkgl.h:18868
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:67
char * TCoordsName
char * InputString
int IsFileUnstructuredGrid()
Definition: vtkDataReader.h:71
char ** VectorsNameInFile
int IsFileStructuredPoints()
Definition: vtkDataReader.h:65
GLboolean GLboolean g
Definition: vtkgl.h:12312
Store zero or more vtkInformation instances.
static vtkAlgorithm * New()
int VectorsNameAllocSize
char ** NormalsNameInFile
virtual int ReadMetaData(vtkInformation *)
vtkCharArray * InputArray
istream * IS
char * VectorsName
char ** TCoordsNameInFile
int FieldDataNameAllocSize
int GetNumberOfTensorsInFile()
int NumberOfTCoordsInFile
represent and manipulate fields of data
Definition: vtkFieldData.h:55
int NumberOfVectorsInFile
void PrintSelf(ostream &os, vtkIndent indent)