VTK
vtkMultiBlockPLOT3DReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkMultiBlockPLOT3DReader.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 =========================================================================*/
91 #ifndef vtkMultiBlockPLOT3DReader_h
92 #define vtkMultiBlockPLOT3DReader_h
93 
94 #include "vtkIOParallelModule.h" // For export macro
96 
97 class vtkDataArray;
99 class vtkIntArray;
100 class vtkStructuredGrid;
102 
104 
106 {
107 public:
110  void PrintSelf(ostream& os, vtkIndent indent);
111 
113 
114  void SetFileName(const char* name) { this->SetXYZFileName(name); }
115  const char* GetFileName() { return this->GetXYZFileName(); }
116  virtual void SetXYZFileName( const char* );
117  vtkGetStringMacro(XYZFileName);
119 
121 
122  vtkSetStringMacro(QFileName);
123  vtkGetStringMacro(QFileName);
125 
127 
128  vtkSetStringMacro(FunctionFileName);
129  vtkGetStringMacro(FunctionFileName);
131 
133 
141  vtkSetMacro(AutoDetectFormat, int);
142  vtkGetMacro(AutoDetectFormat, int);
143  vtkBooleanMacro(AutoDetectFormat, int);
145 
147 
149  vtkSetMacro(BinaryFile, int);
150  vtkGetMacro(BinaryFile, int);
151  vtkBooleanMacro(BinaryFile, int);
153 
155 
158  vtkSetMacro(MultiGrid, int);
159  vtkGetMacro(MultiGrid, int);
160  vtkBooleanMacro(MultiGrid, int);
162 
164 
167  vtkSetMacro(HasByteCount, int);
168  vtkGetMacro(HasByteCount, int);
169  vtkBooleanMacro(HasByteCount, int);
171 
173 
176  vtkSetMacro(IBlanking, int);
177  vtkGetMacro(IBlanking, int);
178  vtkBooleanMacro(IBlanking, int);
180 
182 
183  vtkSetMacro(TwoDimensionalGeometry, int);
184  vtkGetMacro(TwoDimensionalGeometry, int);
185  vtkBooleanMacro(TwoDimensionalGeometry, int);
187 
189 
191  vtkSetMacro(DoublePrecision, int);
192  vtkGetMacro(DoublePrecision, int);
193  vtkBooleanMacro(DoublePrecision, int);
195 
197 
201  vtkSetMacro(ForceRead, int);
202  vtkGetMacro(ForceRead, int);
203  vtkBooleanMacro(ForceRead, int);
205 
207 
212  vtkSetMacro(ByteOrder, int);
213  vtkGetMacro(ByteOrder, int);
214  const char *GetByteOrderAsString();
216 
218 
219  vtkSetMacro(R,double);
220  vtkGetMacro(R,double);
222 
224 
225  vtkSetMacro(Gamma,double);
226  vtkGetMacro(Gamma,double);
228 
230 
233  vtkGetMacro(ScalarFunctionNumber,int);
235 
237 
240  vtkGetMacro(VectorFunctionNumber,int);
242 
244 
247  void AddFunction(int functionNumber);
248  void RemoveFunction(int);
251 
254  virtual int CanReadBinaryFile(const char* fname);
255 
257 
262 
263 //BTX
264  enum
265  {
266  FILE_BIG_ENDIAN=0,
267  FILE_LITTLE_ENDIAN=1
268  };
269 //ETX
270 
271 protected:
274 
276 
277  int CheckFile(FILE*& fp, const char* fname);
278  int CheckGeometryFile(FILE*& xyzFp);
279  int CheckSolutionFile(FILE*& qFp);
280  int CheckFunctionFile(FILE*& fFp);
281 
283  int SkipByteCount (FILE* fp);
284  int ReadIntBlock (FILE* fp, int n, int* block);
285 
287  FILE* fp,
288  int n,
289  vtkDataArray* scalar);
290  virtual int ReadIntScalar(
291  void* vfp,
292  int extent[6], int wextent[6],
293  vtkDataArray* scalar, vtkTypeUInt64 offset);
294  virtual int ReadScalar(
295  void* vfp,
296  int extent[6], int wextent[6],
297  vtkDataArray* scalar, vtkTypeUInt64 offset);
298  virtual int ReadVector(
299  void* vfp,
300  int extent[6], int wextent[6],
301  int numDims, vtkDataArray* vector, vtkTypeUInt64 offset);
302  virtual int OpenFileForDataRead(void*& fp, const char* fname);
303  virtual void CloseFile(void* fp);
304 
305  int GetNumberOfBlocksInternal(FILE* xyzFp, int allocate);
306 
307  int ReadGeometryHeader(FILE* fp);
308  int ReadQHeader(FILE* fp, bool checkGrid, int& nq, int& nqc, int& overflow);
309  int ReadFunctionHeader(FILE* fp, int* nFunctions);
310 
311  void CalculateFileSize(FILE* fp);
312 
313  int AutoDetectionCheck(FILE* fp);
314 
315  void AssignAttribute(int fNumber, vtkStructuredGrid* output,
316  int attributeType);
317  void MapFunction(int fNumber, vtkStructuredGrid* output);
333 
334  // Returns a vtkFloatArray or a vtkDoubleArray depending
335  // on DoublePrecision setting
337 
338  // Delete references to any existing vtkPoints and
339  // I-blank arrays. The next Update() will (re)read
340  // the XYZ file.
342 
343  //plot3d FileNames
344  char *XYZFileName;
345  char *QFileName;
347 
357 
359 
360  size_t FileSize;
361 
362  //parameters used in computing derived functions
363  double R;
364  double Gamma;
365  double Uvinf;
366  double Vvinf;
367  double Wvinf;
368 
369  //functions to read that are not scalars or vectors
371 
374 
376 
383 
385 
387 
388 private:
389  vtkMultiBlockPLOT3DReader(const vtkMultiBlockPLOT3DReader&); // Not implemented.
390  void operator=(const vtkMultiBlockPLOT3DReader&); // Not implemented.
391 };
392 
393 #endif
vtkMultiBlockPLOT3DReader::NewFloatArray
vtkDataArray * NewFloatArray()
vtkMultiBlockPLOT3DReader::Vvinf
double Vvinf
Definition: vtkMultiBlockPLOT3DReader.h:366
vtkMultiBlockPLOT3DReader::MultiGrid
int MultiGrid
Definition: vtkMultiBlockPLOT3DReader.h:351
vtkMultiBlockPLOT3DReader::ComputeSwirl
void ComputeSwirl(vtkStructuredGrid *output)
vtkGetObjectMacro
#define vtkGetObjectMacro(name, type)
Definition: vtkSetGet.h:232
vtkX3D::vector
@ vector
Definition: vtkX3D.h:237
vtkMultiBlockPLOT3DReader::ComputeVelocity
void ComputeVelocity(vtkStructuredGrid *output)
vtkMultiBlockPLOT3DReader::ComputeEntropy
void ComputeEntropy(vtkStructuredGrid *output)
vtkMultiBlockPLOT3DReader::XYZFileName
char * XYZFileName
Definition: vtkMultiBlockPLOT3DReader.h:344
vtkMultiBlockPLOT3DReader::OpenFileForDataRead
virtual int OpenFileForDataRead(void *&fp, const char *fname)
vtkMultiBlockPLOT3DReader::ComputeKineticEnergy
void ComputeKineticEnergy(vtkStructuredGrid *output)
vtkMultiBlockPLOT3DReader::Wvinf
double Wvinf
Definition: vtkMultiBlockPLOT3DReader.h:367
vtkMultiBlockPLOT3DReader::ComputePressure
void ComputePressure(vtkStructuredGrid *output)
vtkMultiBlockPLOT3DReader::ComputeSoundSpeed
void ComputeSoundSpeed(vtkStructuredGrid *output)
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkMultiBlockPLOT3DReader::AssignAttribute
void AssignAttribute(int fNumber, vtkStructuredGrid *output, int attributeType)
vtkMultiBlockPLOT3DReader::VectorFunctionNumber
int VectorFunctionNumber
Definition: vtkMultiBlockPLOT3DReader.h:373
vtkIOParallelModule.h
vtkMultiBlockPLOT3DReader::ComputeStrainRate
void ComputeStrainRate(vtkStructuredGrid *output)
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkMultiBlockPLOT3DReader::SetXYZFileName
virtual void SetXYZFileName(const char *)
vtkMultiBlockPLOT3DReader::AutoDetectionCheck
int AutoDetectionCheck(FILE *fp)
vtkUnsignedCharArray
dynamic, self-adjusting array of unsigned char
Definition: vtkUnsignedCharArray.h:49
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkMultiBlockPLOT3DReader::CreateFloatArray
vtkDataArray * CreateFloatArray()
vtkgl::n
GLclampd n
Definition: vtkgl.h:14370
vtkStructuredGrid
topologically regular array of data
Definition: vtkStructuredGrid.h:63
vtkMultiBlockPLOT3DReader::ComputeVorticity
void ComputeVorticity(vtkStructuredGrid *output)
vtkMultiBlockPLOT3DReader::SetFileName
void SetFileName(const char *name)
Definition: vtkMultiBlockPLOT3DReader.h:114
vtkMultiBlockPLOT3DReader::ComputeVelocityMagnitude
void ComputeVelocityMagnitude(vtkStructuredGrid *output)
vtkMultiBlockPLOT3DReader::SetByteOrderToLittleEndian
void SetByteOrderToLittleEndian()
vtkMultiBlockPLOT3DReader::New
static vtkMultiBlockPLOT3DReader * New()
vtkMultiBlockPLOT3DReader::DoublePrecision
int DoublePrecision
Definition: vtkMultiBlockPLOT3DReader.h:355
vtkMultiBlockPLOT3DReader
read PLOT3D data files
Definition: vtkMultiBlockPLOT3DReader.h:106
vtkMultiBlockPLOT3DReader::MapFunction
void MapFunction(int fNumber, vtkStructuredGrid *output)
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkMultiBlockPLOT3DReader::ReadVector
virtual int ReadVector(void *vfp, int extent[6], int wextent[6], int numDims, vtkDataArray *vector, vtkTypeUInt64 offset)
vtkMultiBlockPLOT3DReader::R
double R
Definition: vtkMultiBlockPLOT3DReader.h:363
vtkMultiBlockPLOT3DReader::ExecutedGhostLevels
int ExecutedGhostLevels
Definition: vtkMultiBlockPLOT3DReader.h:358
vtkMultiBlockPLOT3DReader::Uvinf
double Uvinf
Definition: vtkMultiBlockPLOT3DReader.h:365
vtkMultiBlockPLOT3DReader::ReadQHeader
int ReadQHeader(FILE *fp, bool checkGrid, int &nq, int &nqc, int &overflow)
vtkMultiBlockPLOT3DReader::GetFileName
const char * GetFileName()
Definition: vtkMultiBlockPLOT3DReader.h:115
vtkMultiBlockPLOT3DReader::ReadValues
vtkIdType ReadValues(FILE *fp, int n, vtkDataArray *scalar)
vtkMultiBlockPLOT3DReader::CheckFunctionFile
int CheckFunctionFile(FILE *&fFp)
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkMultiBlockPLOT3DReader::ClearGeometryCache
void ClearGeometryCache()
vtkMultiBlockPLOT3DReader::Controller
vtkMultiProcessController * Controller
Definition: vtkMultiBlockPLOT3DReader.h:386
vtkMultiBlockPLOT3DReader::ComputeMachNumber
void ComputeMachNumber(vtkStructuredGrid *output)
vtkMultiBlockPLOT3DReader::ReadScalar
virtual int ReadScalar(void *vfp, int extent[6], int wextent[6], vtkDataArray *scalar, vtkTypeUInt64 offset)
vtkgl::c
const GLubyte * c
Definition: vtkgl.h:15720
vtkMultiBlockPLOT3DReaderInternals
Definition: vtkMultiBlockPLOT3DReaderInternals.h:26
vtkMultiBlockPLOT3DReader::RequestData
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkMultiBlockPLOT3DReader::CheckSolutionFile
int CheckSolutionFile(FILE *&qFp)
vtkMultiProcessController
Multiprocessing communication superclass.
Definition: vtkMultiProcessController.h:85
vtkMultiBlockPLOT3DReader::SetVectorFunctionNumber
void SetVectorFunctionNumber(int num)
vtkMultiBlockPLOT3DReader::ComputeVorticityMagnitude
void ComputeVorticityMagnitude(vtkStructuredGrid *output)
vtkgl::num
GLuint GLuint num
Definition: vtkgl.h:16907
vtkMultiBlockPLOT3DReader::AddFunction
void AddFunction(int functionNumber)
vtkMultiBlockPLOT3DReader::~vtkMultiBlockPLOT3DReader
~vtkMultiBlockPLOT3DReader()
vtkMultiBlockPLOT3DReader::RequestInformation
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkIntArray
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:53
vtkMultiBlockPLOT3DReader::ReadFunctionHeader
int ReadFunctionHeader(FILE *fp, int *nFunctions)
vtkMultiBlockPLOT3DReader::ComputePressureGradient
void ComputePressureGradient(vtkStructuredGrid *output)
vtkMultiBlockPLOT3DReader::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkMultiBlockPLOT3DReader::QFileName
char * QFileName
Definition: vtkMultiBlockPLOT3DReader.h:345
vtkgl::offset
GLintptr offset
Definition: vtkgl.h:11844
vtkMultiBlockPLOT3DReader::ScalarFunctionNumber
int ScalarFunctionNumber
Definition: vtkMultiBlockPLOT3DReader.h:372
vtkMultiBlockDataSetAlgorithm.h
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkMultiBlockPLOT3DReader::SetScalarFunctionNumber
void SetScalarFunctionNumber(int num)
vtkMultiBlockPLOT3DReader::BinaryFile
int BinaryFile
Definition: vtkMultiBlockPLOT3DReader.h:348
vtkMultiBlockPLOT3DReader::CheckGeometryFile
int CheckGeometryFile(FILE *&xyzFp)
vtkMultiBlockPLOT3DReader::FileSize
size_t FileSize
Definition: vtkMultiBlockPLOT3DReader.h:360
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkMultiBlockPLOT3DReader::ReadIntBlock
int ReadIntBlock(FILE *fp, int n, int *block)
vtkMultiBlockPLOT3DReader::FillOutputPortInformation
virtual int FillOutputPortInformation(int port, vtkInformation *info)
vtkMultiBlockPLOT3DReader::CloseFile
virtual void CloseFile(void *fp)
vtkMultiBlockPLOT3DReader::GetNumberOfBlocksInternal
int GetNumberOfBlocksInternal(FILE *xyzFp, int allocate)
vtkMultiBlockPLOT3DReader::CalculateFileSize
void CalculateFileSize(FILE *fp)
vtkMultiBlockPLOT3DReader::FunctionList
vtkIntArray * FunctionList
Definition: vtkMultiBlockPLOT3DReader.h:370
vtkMultiBlockPLOT3DReader::CheckFile
int CheckFile(FILE *&fp, const char *fname)
vtkMultiBlockPLOT3DReader::ComputePressureCoefficient
void ComputePressureCoefficient(vtkStructuredGrid *output)
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkMultiBlockPLOT3DReader::RemoveAllFunctions
void RemoveAllFunctions()
vtkMultiBlockPLOT3DReader::FunctionFileName
char * FunctionFileName
Definition: vtkMultiBlockPLOT3DReader.h:346
vtkMultiBlockPLOT3DReader::SetController
void SetController(vtkMultiProcessController *c)
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkMultiBlockPLOT3DReader::IBlanking
int IBlanking
Definition: vtkMultiBlockPLOT3DReader.h:354
vtkMultiBlockPLOT3DReader::AutoDetectFormat
int AutoDetectFormat
Definition: vtkMultiBlockPLOT3DReader.h:356
vtkMultiBlockPLOT3DReader::ForceRead
int ForceRead
Definition: vtkMultiBlockPLOT3DReader.h:352
vtkMultiBlockPLOT3DReader::ReadIntScalar
virtual int ReadIntScalar(void *vfp, int extent[6], int wextent[6], vtkDataArray *scalar, vtkTypeUInt64 offset)
vtkMultiBlockPLOT3DReader::RemoveFunction
void RemoveFunction(int)
vtkMultiBlockPLOT3DReader::SkipByteCount
int SkipByteCount(FILE *fp)
vtkMultiBlockPLOT3DReader::SetByteOrderToBigEndian
void SetByteOrderToBigEndian()
vtkMultiBlockPLOT3DReader::CanReadBinaryFile
virtual int CanReadBinaryFile(const char *fname)
vtkMultiBlockPLOT3DReader::vtkMultiBlockPLOT3DReader
vtkMultiBlockPLOT3DReader()
vtkMultiBlockPLOT3DReader::Gamma
double Gamma
Definition: vtkMultiBlockPLOT3DReader.h:364
vtkX3D::extent
@ extent
Definition: vtkX3D.h:345
vtkMultiBlockPLOT3DReader::ReadGeometryHeader
int ReadGeometryHeader(FILE *fp)
vtkMultiBlockPLOT3DReader::ByteOrder
int ByteOrder
Definition: vtkMultiBlockPLOT3DReader.h:353
vtkMultiBlockPLOT3DReader::ComputeEnthalpy
void ComputeEnthalpy(vtkStructuredGrid *output)
vtkMultiBlockPLOT3DReader::Internal
vtkMultiBlockPLOT3DReaderInternals * Internal
Definition: vtkMultiBlockPLOT3DReader.h:384
vtkMultiBlockPLOT3DReader::GetByteOrderAsString
const char * GetByteOrderAsString()
vtkMultiBlockPLOT3DReader::TwoDimensionalGeometry
int TwoDimensionalGeometry
Definition: vtkMultiBlockPLOT3DReader.h:350
VTKIOPARALLEL_EXPORT
#define VTKIOPARALLEL_EXPORT
Definition: vtkIOParallelModule.h:15
vtkMultiBlockPLOT3DReader::ComputeTemperature
void ComputeTemperature(vtkStructuredGrid *output)
vtkMultiBlockPLOT3DReader::HasByteCount
int HasByteCount
Definition: vtkMultiBlockPLOT3DReader.h:349
vtkMultiBlockPLOT3DReader::GetByteCountSize
int GetByteCountSize()
vtkMultiBlockDataSetAlgorithm
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
Definition: vtkMultiBlockDataSetAlgorithm.h:32