VTK
vtkEnSightGoldBinaryReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkEnSightGoldBinaryReader.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 =========================================================================*/
42 #ifndef __vtkEnSightGoldBinaryReader_h
43 #define __vtkEnSightGoldBinaryReader_h
44 
45 #include "vtkEnSightReader.h"
46 
48 
50 {
51 public:
54  virtual void PrintSelf(ostream& os, vtkIndent indent);
55 
56 protected:
59 
60  // Returns 1 if successful. Sets file size as a side action.
61  int OpenFile(const char* filename);
62 
63 
64  // Returns 1 if successful. Handles constructing the filename, opening the file and checking
65  // if it's binary
66  int InitializeFile(const char* filename);
67 
69 
71  virtual int ReadGeometryFile(const char* fileName, int timeStep,
72  vtkMultiBlockDataSet *output);
74 
76 
78  virtual int ReadMeasuredGeometryFile(const char* fileName, int timeStep,
79  vtkMultiBlockDataSet *output);
81 
83 
86  virtual int ReadScalarsPerNode(const char* fileName, const char* description,
87  int timeStep, vtkMultiBlockDataSet *output,
88  int measured = 0, int numberOfComponents = 1,
89  int component = 0);
91 
93 
95  virtual int ReadVectorsPerNode(const char* fileName, const char* description,
96  int timeStep, vtkMultiBlockDataSet *output,
97  int measured = 0);
99 
101 
103  virtual int ReadTensorsPerNode(const char* fileName, const char* description,
104  int timeStep, vtkMultiBlockDataSet *output);
106 
108 
111  virtual int ReadScalarsPerElement(const char* fileName, const char* description,
112  int timeStep, vtkMultiBlockDataSet *output,
113  int numberOfComponents = 1,
114  int component = 0);
116 
118 
120  virtual int ReadVectorsPerElement(const char* fileName, const char* description,
121  int timeStep, vtkMultiBlockDataSet *output);
123 
125 
127  virtual int ReadTensorsPerElement(const char* fileName, const char* description,
128  int timeStep, vtkMultiBlockDataSet *output);
130 
132 
135  virtual int CreateUnstructuredGridOutput(int partId,
136  char line[80],
137  const char* name,
138  vtkMultiBlockDataSet *output);
140 
142 
144  virtual int CreateStructuredGridOutput(int partId,
145  char line[256],
146  const char* name,
147  vtkMultiBlockDataSet *output);
149 
151 
153  int CreateRectilinearGridOutput(int partId, char line[256], const char* name,
154  vtkMultiBlockDataSet *output);
156 
158 
160  int CreateImageDataOutput(int partId, char line[80], const char* name,
161  vtkMultiBlockDataSet *output);
163 
166  int ReadLine(char result[80]);
167 
169 
171  int ReadInt(int *result);
172  int ReadPartId(int *result);
174 
177  int ReadIntArray(int *result, int numInts);
178 
181  int ReadFloatArray(float *result, int numFloats);
182 
187  int CountTimeSteps();
188 
190 
191  int SkipTimeStep();
192  int SkipStructuredGrid(char line[256]);
193  int SkipUnstructuredGrid(char line[256]);
194  int SkipRectilinearGrid(char line[256]);
195  int SkipImageData(char line[256]);
197 
200  int Fortran;
201 
202  ifstream *IFile;
203  // The size of the file could be used to choose byte order.
205 
206 private:
207  int SizeOfInt;
208  vtkEnSightGoldBinaryReader(const vtkEnSightGoldBinaryReader&); // Not implemented.
209  void operator=(const vtkEnSightGoldBinaryReader&); // Not implemented.
210 };
211 
212 #endif