VTK
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  enum FieldType
52  {
56  };
57 
58 
59 
60  static vtkDataReader *New();
62  void PrintSelf(ostream& os, vtkIndent indent);
63 
65 
66  vtkSetStringMacro(FileName);
67  vtkGetStringMacro(FileName);
69 
71 
73  int IsFileValid(const char *dstype);
75  return this->IsFileValid("structured_points");};
77  return this->IsFileValid("polydata");};
79  return this->IsFileValid("structured_grid");};
81  return this->IsFileValid("unstructured_grid");};
83  return this->IsFileValid("rectilinear_grid");};
85 
87 
91  void SetInputString(const char *in);
92  vtkGetStringMacro(InputString);
93  void SetInputString(const char *in, int len);
94  vtkGetMacro(InputStringLength, int);
95  void SetBinaryInputString(const char *, int len);
97  { this->SetBinaryInputString(input.c_str(), static_cast<int>(input.length())); }
99 
101 
107  virtual void SetInputArray(vtkCharArray*);
110 
112 
115 
117 
119  vtkSetMacro(ReadFromInputString,int);
120  vtkGetMacro(ReadFromInputString,int);
121  vtkBooleanMacro(ReadFromInputString,int);
123 
125 
127  vtkGetMacro(FileType,int);
129 
131 
136  {this->CharacterizeFile(); return this->NumberOfScalarsInFile;}
138  {this->CharacterizeFile(); return this->NumberOfVectorsInFile;}
140  {this->CharacterizeFile(); return this->NumberOfTensorsInFile;}
142  {this->CharacterizeFile(); return this->NumberOfNormalsInFile;}
144  {this->CharacterizeFile(); return this->NumberOfTCoordsInFile;}
146  {this->CharacterizeFile(); return this->NumberOfFieldDataInFile;}
148 
150 
153  const char *GetScalarsNameInFile(int i);
154  const char *GetVectorsNameInFile(int i);
155  const char *GetTensorsNameInFile(int i);
156  const char *GetNormalsNameInFile(int i);
157  const char *GetTCoordsNameInFile(int i);
158  const char *GetFieldDataNameInFile(int i);
160 
162 
164  vtkSetStringMacro(ScalarsName);
165  vtkGetStringMacro(ScalarsName);
167 
169 
171  vtkSetStringMacro(VectorsName);
172  vtkGetStringMacro(VectorsName);
174 
176 
178  vtkSetStringMacro(TensorsName);
179  vtkGetStringMacro(TensorsName);
181 
183 
185  vtkSetStringMacro(NormalsName);
186  vtkGetStringMacro(NormalsName);
188 
190 
192  vtkSetStringMacro(TCoordsName);
193  vtkGetStringMacro(TCoordsName);
195 
197 
200  vtkSetStringMacro(LookupTableName);
201  vtkGetStringMacro(LookupTableName);
203 
205 
207  vtkSetStringMacro(FieldDataName);
208  vtkGetStringMacro(FieldDataName);
210 
212 
213  vtkSetMacro(ReadAllScalars,int);
214  vtkGetMacro(ReadAllScalars,int);
215  vtkBooleanMacro(ReadAllScalars,int);
217 
219 
220  vtkSetMacro(ReadAllVectors,int);
221  vtkGetMacro(ReadAllVectors,int);
222  vtkBooleanMacro(ReadAllVectors,int);
224 
226 
227  vtkSetMacro(ReadAllNormals,int);
228  vtkGetMacro(ReadAllNormals,int);
229  vtkBooleanMacro(ReadAllNormals,int);
231 
233 
234  vtkSetMacro(ReadAllTensors,int);
235  vtkGetMacro(ReadAllTensors,int);
236  vtkBooleanMacro(ReadAllTensors,int);
238 
240 
241  vtkSetMacro(ReadAllColorScalars,int);
242  vtkGetMacro(ReadAllColorScalars,int);
243  vtkBooleanMacro(ReadAllColorScalars,int);
245 
247 
248  vtkSetMacro(ReadAllTCoords,int);
249  vtkGetMacro(ReadAllTCoords,int);
250  vtkBooleanMacro(ReadAllTCoords,int);
252 
254 
255  vtkSetMacro(ReadAllFields,int);
256  vtkGetMacro(ReadAllFields,int);
257  vtkBooleanMacro(ReadAllFields,int);
259 
261  int OpenVTKFile();
262 
264  int ReadHeader();
265 
269  int ReadCellData(vtkDataSet *ds, int numCells);
270 
274  int ReadPointData(vtkDataSet *ds, int numPts);
275 
277  int ReadPoints(vtkPointSet *ps, int numPts);
278 
280  int ReadPoints(vtkGraph *g, int numPts);
281 
285  int ReadVertexData(vtkGraph *g, int numVertices);
286 
290  int ReadEdgeData(vtkGraph *g, int numEdges);
291 
293  int ReadRowData(vtkTable *t, int numEdges);
294 
296  int ReadCells(int size, int *data);
297 
299  int ReadCells(int size, int *data, int skip1, int read2, int skip3);
300 
303  int ReadCoordinates(vtkRectilinearGrid *rg, int axes, int numCoords);
304 
306 
307  vtkAbstractArray *ReadArray(const char *dataType, int numTuples, int numComp);
308  vtkFieldData *ReadFieldData(FieldType fieldType = FIELD_DATA);
310 
312 
314  vtkGetMacro(FileMajorVersion, int);
315  vtkGetMacro(FileMinorVersion, int);
317 
318 //BTX
320 
322  int Read(char *);
323  int Read(unsigned char *);
324  int Read(short *);
325  int Read(unsigned short *);
326  int Read(int *);
327  int Read(unsigned int *);
328  int Read(long *);
329  int Read(unsigned long *);
330 #if defined(VTK_TYPE_USE___INT64)
331  int Read(__int64 *result);
332  int Read(unsigned __int64 *result);
333 #endif
334 #if defined(VTK_TYPE_USE_LONG_LONG)
335  int Read(long long *result);
336  int Read(unsigned long long *result);
337 #endif
338  int Read(float *);
339  int Read(double *);
340 //ETX
342 
344  void CloseVTKFile();
345 
346 //BTX
349  int ReadLine(char result[256]);
350 
353  int ReadString(char result[256]);
354 
356  char *LowerCase(char *str, const size_t len=256);
357 
359 
360  istream *GetIStream() {return this->IS;};
361 //ETX
363 
366  virtual int ReadMetaData(vtkInformation *) { return 1; }
367 
368 protected:
371 
372  char *FileName;
373  int FileType;
374  istream *IS;
375 
376  char *ScalarsName;
377  char *VectorsName;
378  char *TensorsName;
379  char *TCoordsName;
380  char *NormalsName;
383  char *ScalarLut;
384 
386  char *InputString;
389 
390  void SetScalarLut(const char* lut);
391  vtkGetStringMacro(ScalarLut);
392 
393  char *Header;
394 
405 
407 
408  // This supports getting additional information from vtk files
428 
438 
440  int CharacterizeFile(); //read entire file, storing important characteristics
441  void CheckFor(const char* name, char *line, int &num, char** &array,
442  int& allocSize);
443 
445 
448  int DecodeString(char *resname, const char* name);
449 
454  { return 1; }
457  { return 1; }
460  { return 1; }
461 
462 private:
463  vtkDataReader(const vtkDataReader&); // Not implemented.
464  void operator=(const vtkDataReader&); // Not implemented.
465 
466  void ConvertGhostLevelsToGhostType(
467  FieldType fieldType, vtkAbstractArray *data) const;
468 };
469 
470 #endif
vtkDataReader::ReadHeader
int ReadHeader()
vtkDataReader::NormalsNameInFile
char ** NormalsNameInFile
Definition: vtkDataReader.h:422
vtkDataReader::TensorsName
char * TensorsName
Definition: vtkDataReader.h:378
vtkStdString.h
vtkDataReader::GetScalarsNameInFile
const char * GetScalarsNameInFile(int i)
vtkgl::data
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: vtkgl.h:11339
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkDataReader::CharacteristicsTime
vtkTimeStamp CharacteristicsTime
Definition: vtkDataReader.h:427
vtkDataReader::ReadCells
int ReadCells(int size, int *data)
vtkDataReader::ReadVectorData
int ReadVectorData(vtkDataSetAttributes *a, int num)
vtkDataReader::GetNumberOfFieldDataInFile
int GetNumberOfFieldDataInFile()
Definition: vtkDataReader.h:145
vtkDataReader::ReadEdgeFlags
int ReadEdgeFlags(vtkDataSetAttributes *a, int num)
vtkDataReader::GetFieldDataNameInFile
const char * GetFieldDataNameInFile(int i)
vtkDataReader::ReadFieldData
vtkFieldData * ReadFieldData(FieldType fieldType=FIELD_DATA)
vtkDataReader::IS
istream * IS
Definition: vtkDataReader.h:374
vtkDataReader::NumberOfVectorsInFile
int NumberOfVectorsInFile
Definition: vtkDataReader.h:412
vtkDataReader::~vtkDataReader
~vtkDataReader()
vtkDataReader
helper superclass for objects that read vtk data files
Definition: vtkDataReader.h:49
vtkDataReader::CharacterizeFile
int CharacterizeFile()
vtkAlgorithm
Superclass for all sources, filters, and sinks in VTK.
Definition: vtkAlgorithm.h:62
vtkDataSetAttributes
represent and manipulate attribute data in a dataset
Definition: vtkDataSetAttributes.h:58
vtkRectilinearGrid
a dataset that is topologically regular with variable spacing in the three coordinate directions
Definition: vtkRectilinearGrid.h:56
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkTable
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:68
vtkDataReader::RequestData
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Definition: vtkDataReader.h:452
vtkDataReader::ReadCells
int ReadCells(int size, int *data, int skip1, int read2, int skip3)
vtkDataReader::FieldType
FieldType
Definition: vtkDataReader.h:52
vtkDataReader::ReadPoints
int ReadPoints(vtkGraph *g, int numPts)
vtkTimeStamp
record modification and/or execution time
Definition: vtkTimeStamp.h:35
vtkDataReader::ReadEdgeData
int ReadEdgeData(vtkGraph *g, int numEdges)
vtkDataReader::Read
int Read(int *)
vtkDataReader::GetNumberOfVectorsInFile
int GetNumberOfVectorsInFile()
Definition: vtkDataReader.h:137
vtkDataReader::ReadPedigreeIds
int ReadPedigreeIds(vtkDataSetAttributes *a, int num)
VTKIOLEGACY_EXPORT
#define VTKIOLEGACY_EXPORT
Definition: vtkIOLegacyModule.h:15
vtkDataReader::VectorsName
char * VectorsName
Definition: vtkDataReader.h:377
vtkDataReader::ReadVertexData
int ReadVertexData(vtkGraph *g, int numVertices)
vtkDataReader::NormalsName
char * NormalsName
Definition: vtkDataReader.h:380
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkDataReader::ReadRowData
int ReadRowData(vtkTable *t, int numEdges)
vtkDataReader::GetNumberOfTensorsInFile
int GetNumberOfTensorsInFile()
Definition: vtkDataReader.h:139
vtkDataReader::TCoordsName
char * TCoordsName
Definition: vtkDataReader.h:379
vtkDataReader::Header
char * Header
Definition: vtkDataReader.h:391
vtkDataReader::NumberOfFieldDataInFile
int NumberOfFieldDataInFile
Definition: vtkDataReader.h:424
vtkDataReader::CELL_DATA
@ CELL_DATA
Definition: vtkDataReader.h:54
vtkDataReader::ReadPoints
int ReadPoints(vtkPointSet *ps, int numPts)
vtkDataReader::ScalarLut
char * ScalarLut
Definition: vtkDataReader.h:383
vtkgl::input
GLenum GLenum GLenum input
Definition: vtkgl.h:15941
vtkIOLegacyModule.h
vtkDataReader::Read
int Read(float *)
vtkDataReader::LookupTableName
char * LookupTableName
Definition: vtkDataReader.h:381
vtkDataReader::ReadAllFields
int ReadAllFields
Definition: vtkDataReader.h:435
vtkgl::in
GLuint in
Definition: vtkgl.h:16905
vtkDataReader::vtkDataReader
vtkDataReader()
vtkDataReader::FileName
char * FileName
Definition: vtkDataReader.h:372
vtkDataReader::RequestUpdateExtent
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Definition: vtkDataReader.h:455
vtkDataReader::FileType
int FileType
Definition: vtkDataReader.h:373
vtkDataReader::InputStringPos
int InputStringPos
Definition: vtkDataReader.h:388
vtkDataReader::Read
int Read(unsigned long *)
vtkDataReader::RequestInformation
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
Definition: vtkDataReader.h:458
vtkDataReader::ReadAllScalars
int ReadAllScalars
Definition: vtkDataReader.h:429
vtkFieldData
represent and manipulate fields of data
Definition: vtkFieldData.h:56
vtkDataReader::GetIStream
istream * GetIStream()
Definition: vtkDataReader.h:360
vtkDataReader::GetTensorsNameInFile
const char * GetTensorsNameInFile(int i)
vtkDataReader::SetBinaryInputString
void SetBinaryInputString(const char *, int len)
vtkAlgorithm.h
vtkDataReader::ReadCoordinates
int ReadCoordinates(vtkRectilinearGrid *rg, int axes, int numCoords)
vtkDataReader::Read
int Read(unsigned char *)
vtkDataReader::ReadCoScalarData
int ReadCoScalarData(vtkDataSetAttributes *a, int num)
vtkDataReader::ReadNormalData
int ReadNormalData(vtkDataSetAttributes *a, int num)
vtkCharArray
dynamic, self-adjusting array of char
Definition: vtkCharArray.h:46
vtkDataReader::GetNumberOfNormalsInFile
int GetNumberOfNormalsInFile()
Definition: vtkDataReader.h:141
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkDataReader::ReadAllTCoords
int ReadAllTCoords
Definition: vtkDataReader.h:434
vtkDataReader::VectorsNameInFile
char ** VectorsNameInFile
Definition: vtkDataReader.h:413
vtkDataReader::DecodeString
int DecodeString(char *resname, const char *name)
vtkDataReader::GetNumberOfTCoordsInFile
int GetNumberOfTCoordsInFile()
Definition: vtkDataReader.h:143
vtkDataReader::OpenVTKFile
int OpenVTKFile()
vtkDataReader::SetInputString
void SetInputString(const char *in, int len)
vtkDataReader::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkDataReader::ScalarsName
char * ScalarsName
Definition: vtkDataReader.h:376
vtkDataReader::ReadScalarData
int ReadScalarData(vtkDataSetAttributes *a, int num)
vtkDataReader::ScalarsNameInFile
char ** ScalarsNameInFile
Definition: vtkDataReader.h:410
vtkDataReader::CheckFor
void CheckFor(const char *name, char *line, int &num, char **&array, int &allocSize)
vtkDataReader::InitializeCharacteristics
void InitializeCharacteristics()
vtkgl::num
GLuint GLuint num
Definition: vtkgl.h:16907
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkDataReader::New
static vtkDataReader * New()
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkDataReader::ReadCellData
int ReadCellData(vtkDataSet *ds, int numCells)
vtkDataReader::Read
int Read(unsigned int *)
vtkDataReader::GetNormalsNameInFile
const char * GetNormalsNameInFile(int i)
vtkDataReader::ReadLine
int ReadLine(char result[256])
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkDataReader::InputString
char * InputString
Definition: vtkDataReader.h:386
vtkDataReader::TensorsNameInFile
char ** TensorsNameInFile
Definition: vtkDataReader.h:416
vtkDataReader::ReadTCoordsData
int ReadTCoordsData(vtkDataSetAttributes *a, int num)
vtkDataReader::ScalarsNameAllocSize
int ScalarsNameAllocSize
Definition: vtkDataReader.h:411
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkDataReader::IsFileValid
int IsFileValid(const char *dstype)
vtkDataReader::InputStringLength
int InputStringLength
Definition: vtkDataReader.h:387
vtkgl::a
GLboolean GLboolean GLboolean GLboolean a
Definition: vtkgl.h:12312
vtkDataReader::POINT_DATA
@ POINT_DATA
Definition: vtkDataReader.h:53
vtkDataReader::ReadDataSetData
int ReadDataSetData(vtkDataSet *ds)
vtkDataReader::IsFilePolyData
int IsFilePolyData()
Definition: vtkDataReader.h:76
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:65
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkDataReader::IsFileUnstructuredGrid
int IsFileUnstructuredGrid()
Definition: vtkDataReader.h:80
vtkDataReader::ReadFromInputString
int ReadFromInputString
Definition: vtkDataReader.h:385
vtkDataReader::CloseVTKFile
void CloseVTKFile()
vtkDataReader::TCoordsNameAllocSize
int TCoordsNameAllocSize
Definition: vtkDataReader.h:420
vtkgl::t
GLdouble GLdouble t
Definition: vtkgl.h:11602
vtkDataReader::ReadTensorData
int ReadTensorData(vtkDataSetAttributes *a, int num)
vtkgl::result
GLuint64EXT * result
Definition: vtkgl.h:18868
vtkDataReader::SetScalarLut
void SetScalarLut(const char *lut)
vtkDataReader::ReadLutData
int ReadLutData(vtkDataSetAttributes *a)
vtkgl::g
GLboolean GLboolean g
Definition: vtkgl.h:12312
IS
#define IS
Definition: vtkVRMLImporter_Yacc.h:563
vtkDataReader::InputArray
vtkCharArray * InputArray
Definition: vtkDataReader.h:444
vtkDataReader::ReadArray
vtkAbstractArray * ReadArray(const char *dataType, int numTuples, int numComp)
vtkDataReader::FieldDataNameAllocSize
int FieldDataNameAllocSize
Definition: vtkDataReader.h:426
vtkDataReader::Read
int Read(double *)
vtkDataReader::ReadGlobalIds
int ReadGlobalIds(vtkDataSetAttributes *a, int num)
vtkPointSet
abstract class for specifying dataset behavior
Definition: vtkPointSet.h:45
vtkDataReader::VectorsNameAllocSize
int VectorsNameAllocSize
Definition: vtkDataReader.h:414
vtkDataReader::ReadString
int ReadString(char result[256])
vtkDataReader::GetTCoordsNameInFile
const char * GetTCoordsNameInFile(int i)
vtkDataReader::ProcessRequest
virtual int ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkDataReader::IsFileStructuredPoints
int IsFileStructuredPoints()
Definition: vtkDataReader.h:74
vtkDataReader::IsFileStructuredGrid
int IsFileStructuredGrid()
Definition: vtkDataReader.h:78
vtkDataReader::NumberOfScalarsInFile
int NumberOfScalarsInFile
Definition: vtkDataReader.h:409
vtkgl::len
GLenum GLsizei len
Definition: vtkgl.h:13010
vtkDataReader::FileMajorVersion
int FileMajorVersion
Definition: vtkDataReader.h:436
vtkDataReader::SetInputString
void SetInputString(const vtkStdString &input)
Definition: vtkDataReader.h:96
vtkDataReader::ReadAllColorScalars
int ReadAllColorScalars
Definition: vtkDataReader.h:433
vtkDataReader::TensorsNameAllocSize
int TensorsNameAllocSize
Definition: vtkDataReader.h:417
vtkDataReader::FIELD_DATA
@ FIELD_DATA
Definition: vtkDataReader.h:55
vtkDataReader::FileMinorVersion
int FileMinorVersion
Definition: vtkDataReader.h:437
vtkDataReader::IsFileRectilinearGrid
int IsFileRectilinearGrid()
Definition: vtkDataReader.h:82
vtkStdString
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:48
vtkGraph
Base class for graph data types.
Definition: vtkGraph.h:289
vtkDataReader::Read
int Read(short *)
vtkDataReader::Read
int Read(char *)
vtkDataReader::ReadAllVectors
int ReadAllVectors
Definition: vtkDataReader.h:430
vtkDataReader::FieldDataNameInFile
char ** FieldDataNameInFile
Definition: vtkDataReader.h:425
vtkDataReader::NumberOfTensorsInFile
int NumberOfTensorsInFile
Definition: vtkDataReader.h:415
vtkDataReader::GetVectorsNameInFile
const char * GetVectorsNameInFile(int i)
vtkDataReader::Read
int Read(unsigned short *)
vtkDataReader::ReadPointData
int ReadPointData(vtkDataSet *ds, int numPts)
vtkDataReader::ReadMetaData
virtual int ReadMetaData(vtkInformation *)
Definition: vtkDataReader.h:366
vtkDataReader::GetNumberOfScalarsInFile
int GetNumberOfScalarsInFile()
Definition: vtkDataReader.h:135
vtkDataReader::ReadAllNormals
int ReadAllNormals
Definition: vtkDataReader.h:431
vtkDataReader::Read
int Read(long *)
vtkDataReader::LowerCase
char * LowerCase(char *str, const size_t len=256)
vtkDataReader::TCoordsNameInFile
char ** TCoordsNameInFile
Definition: vtkDataReader.h:419
vtkDataReader::SetInputArray
virtual void SetInputArray(vtkCharArray *)
vtkDataReader::SetInputString
void SetInputString(const char *in)
vtkDataReader::NumberOfNormalsInFile
int NumberOfNormalsInFile
Definition: vtkDataReader.h:421
vtkDataReader::ReadAllTensors
int ReadAllTensors
Definition: vtkDataReader.h:432
vtkDataReader::NormalsNameAllocSize
int NormalsNameAllocSize
Definition: vtkDataReader.h:423
vtkDataReader::FieldDataName
char * FieldDataName
Definition: vtkDataReader.h:382
vtkgl::size
GLsizeiptr size
Definition: vtkgl.h:11843
vtkDataReader::NumberOfTCoordsInFile
int NumberOfTCoordsInFile
Definition: vtkDataReader.h:418