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=========================================================================*/
92#ifndef vtkMultiBlockPLOT3DReader_h
93#define vtkMultiBlockPLOT3DReader_h
94
95#include "vtkIOParallelModule.h" // For export macro
97
98class vtkDataArray;
100class vtkIntArray;
105
107{
108public:
111 void PrintSelf(ostream& os, vtkIndent indent);
112
114
117 void SetFileName(const char* name) { this->SetXYZFileName(name); }
118 const char* GetFileName() { return this->GetXYZFileName(); }
119 virtual void SetXYZFileName( const char* );
120 vtkGetStringMacro(XYZFileName);
122
124
127 vtkSetStringMacro(QFileName);
130
132
135 vtkSetStringMacro(FunctionFileName);
136 vtkGetStringMacro(FunctionFileName);
138
140
150 vtkSetMacro(AutoDetectFormat, int);
151 vtkGetMacro(AutoDetectFormat, int);
152 vtkBooleanMacro(AutoDetectFormat, int);
154
156
160 vtkSetMacro(BinaryFile, int);
161 vtkGetMacro(BinaryFile, int);
162 vtkBooleanMacro(BinaryFile, int);
164
166
172 vtkSetMacro(MultiGrid, int);
173 vtkGetMacro(MultiGrid, int);
174 vtkBooleanMacro(MultiGrid, int);
176
178
183 vtkSetMacro(HasByteCount, int);
184 vtkGetMacro(HasByteCount, int);
185 vtkBooleanMacro(HasByteCount, int);
187
189
194 vtkSetMacro(IBlanking, int);
195 vtkGetMacro(IBlanking, int);
196 vtkBooleanMacro(IBlanking, int);
198
200
204 vtkSetMacro(TwoDimensionalGeometry, int);
205 vtkGetMacro(TwoDimensionalGeometry, int);
206 vtkBooleanMacro(TwoDimensionalGeometry, int);
208
210
215 vtkSetMacro(DoublePrecision, int);
216 vtkGetMacro(DoublePrecision, int);
217 vtkBooleanMacro(DoublePrecision, int);
219
221
227 vtkSetMacro(ForceRead, int);
228 vtkGetMacro(ForceRead, int);
229 vtkBooleanMacro(ForceRead, int);
231
233
241 vtkSetMacro(ByteOrder, int);
242 vtkGetMacro(ByteOrder, int);
243 const char *GetByteOrderAsString();
245
247
250 vtkSetMacro(R,double);
251 vtkGetMacro(R,double);
253
255
258 vtkSetMacro(Gamma,double);
259 vtkGetMacro(Gamma,double);
261
263
268 vtkGetMacro(ScalarFunctionNumber,int);
270
272
277 vtkGetMacro(VectorFunctionNumber,int);
279
281
286 void AddFunction(int functionNumber);
287 void RemoveFunction(int);
290
295 virtual int CanReadBinaryFile(const char* fname);
296
298
303 vtkGetObjectMacro(Controller, vtkMultiProcessController);
305
306 enum
307 {
308 FILE_BIG_ENDIAN=0,
309 FILE_LITTLE_ENDIAN=1
310 };
311
312protected:
315
317
318 int CheckFile(FILE*& fp, const char* fname);
319 int CheckGeometryFile(FILE*& xyzFp);
320 int CheckSolutionFile(FILE*& qFp);
321 int CheckFunctionFile(FILE*& fFp);
322
324 int SkipByteCount (FILE* fp);
325 int ReadIntBlock (FILE* fp, int n, int* block);
326
328 FILE* fp,
329 int n,
330 vtkDataArray* scalar);
331 virtual int ReadIntScalar(
332 void* vfp,
333 int extent[6], int wextent[6],
334 vtkDataArray* scalar, vtkTypeUInt64 offset,
335 const vtkMultiBlockPLOT3DReaderRecord& currentRecord);
336 virtual int ReadScalar(
337 void* vfp,
338 int extent[6], int wextent[6],
339 vtkDataArray* scalar, vtkTypeUInt64 offset,
340 const vtkMultiBlockPLOT3DReaderRecord& currentRecord);
341 virtual int ReadVector(
342 void* vfp,
343 int extent[6], int wextent[6],
344 int numDims, vtkDataArray* vector, vtkTypeUInt64 offset,
345 const vtkMultiBlockPLOT3DReaderRecord& currentRecord);
346 virtual int OpenFileForDataRead(void*& fp, const char* fname);
347 virtual void CloseFile(void* fp);
348
349 int GetNumberOfBlocksInternal(FILE* xyzFp, int allocate);
350
351 int ReadGeometryHeader(FILE* fp);
352 int ReadQHeader(FILE* fp, bool checkGrid, int& nq, int& nqc, int& overflow);
353 int ReadFunctionHeader(FILE* fp, int* nFunctions);
354
355 void CalculateFileSize(FILE* fp);
356
357 int AutoDetectionCheck(FILE* fp);
358
359 void AssignAttribute(int fNumber, vtkStructuredGrid* output,
360 int attributeType);
361 void MapFunction(int fNumber, vtkStructuredGrid* output);
377
378 // Returns a vtkFloatArray or a vtkDoubleArray depending
379 // on DoublePrecision setting
381
382 // Delete references to any existing vtkPoints and
383 // I-blank arrays. The next Update() will (re)read
384 // the XYZ file.
386
387 //plot3d FileNames
391
401
403
404 size_t FileSize;
405
406 //parameters used in computing derived functions
407 double R;
408 double Gamma;
409 double Uvinf;
410 double Vvinf;
411 double Wvinf;
412
413 //functions to read that are not scalars or vectors
415
418
420
427
429
431
432private:
433 vtkMultiBlockPLOT3DReader(const vtkMultiBlockPLOT3DReader&) VTK_DELETE_FUNCTION;
434 void operator=(const vtkMultiBlockPLOT3DReader&) VTK_DELETE_FUNCTION;
435};
436
437#endif
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
dynamic, self-adjusting array of int
Definition: vtkIntArray.h:46
Superclass for algorithms that produce only vtkMultiBlockDataSet as output.
void SetFileName(const char *name)
Set/Get the PLOT3D geometry filename.
virtual int OpenFileForDataRead(void *&fp, const char *fname)
int ReadFunctionHeader(FILE *fp, int *nFunctions)
void ComputePressure(vtkStructuredGrid *output)
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
void ComputeTemperature(vtkStructuredGrid *output)
void ComputeSwirl(vtkStructuredGrid *output)
void ComputeEnthalpy(vtkStructuredGrid *output)
void ComputePressureCoefficient(vtkStructuredGrid *output)
static vtkMultiBlockPLOT3DReader * New()
vtkIdType ReadValues(FILE *fp, int n, vtkDataArray *scalar)
virtual int CanReadBinaryFile(const char *fname)
Return 1 if the reader can read the given file name.
int CheckSolutionFile(FILE *&qFp)
void ComputeEntropy(vtkStructuredGrid *output)
void ComputeVelocity(vtkStructuredGrid *output)
void SetVectorFunctionNumber(int num)
Specify the vector function to extract.
virtual int FillOutputPortInformation(int port, vtkInformation *info)
Fill the output port information objects for this algorithm.
void ComputeSoundSpeed(vtkStructuredGrid *output)
void CalculateFileSize(FILE *fp)
virtual int ReadVector(void *vfp, int extent[6], int wextent[6], int numDims, vtkDataArray *vector, vtkTypeUInt64 offset, const vtkMultiBlockPLOT3DReaderRecord &currentRecord)
int ReadQHeader(FILE *fp, bool checkGrid, int &nq, int &nqc, int &overflow)
virtual void CloseFile(void *fp)
void ComputeStrainRate(vtkStructuredGrid *output)
void ComputePressureGradient(vtkStructuredGrid *output)
virtual int ReadIntScalar(void *vfp, int extent[6], int wextent[6], vtkDataArray *scalar, vtkTypeUInt64 offset, const vtkMultiBlockPLOT3DReaderRecord &currentRecord)
int CheckFunctionFile(FILE *&fFp)
int CheckGeometryFile(FILE *&xyzFp)
virtual void SetXYZFileName(const char *)
int AutoDetectionCheck(FILE *fp)
vtkMultiProcessController * Controller
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
This is called by the superclass.
int ReadIntBlock(FILE *fp, int n, int *block)
void ComputeKineticEnergy(vtkStructuredGrid *output)
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual int ReadScalar(void *vfp, int extent[6], int wextent[6], vtkDataArray *scalar, vtkTypeUInt64 offset, const vtkMultiBlockPLOT3DReaderRecord &currentRecord)
void SetByteOrderToBigEndian()
Set the byte order of the file (remember, more Unix workstations write big endian whereas PCs write l...
void AddFunction(int functionNumber)
Specify additional functions to read.
void ComputeVorticity(vtkStructuredGrid *output)
int CheckFile(FILE *&fp, const char *fname)
vtkDataArray * NewFloatArray()
void ComputeMachNumber(vtkStructuredGrid *output)
void SetScalarFunctionNumber(int num)
Specify the scalar function to extract.
int ReadGeometryHeader(FILE *fp)
void MapFunction(int fNumber, vtkStructuredGrid *output)
int SkipByteCount(FILE *fp)
vtkDataArray * CreateFloatArray()
const char * GetByteOrderAsString()
void AssignAttribute(int fNumber, vtkStructuredGrid *output, int attributeType)
vtkMultiBlockPLOT3DReaderInternals * Internal
int GetNumberOfBlocksInternal(FILE *xyzFp, int allocate)
void ComputeVelocityMagnitude(vtkStructuredGrid *output)
void ComputeVorticityMagnitude(vtkStructuredGrid *output)
void SetController(vtkMultiProcessController *c)
Set/Get the communicator object (we'll use global World controller if you don't set a different one).
Multiprocessing communication superclass.
topologically regular array of data
dynamic, self-adjusting array of unsigned char
@ vector
Definition: vtkX3D.h:237
@ info
Definition: vtkX3D.h:376
@ port
Definition: vtkX3D.h:447
@ extent
Definition: vtkX3D.h:345
@ name
Definition: vtkX3D.h:219
@ offset
Definition: vtkX3D.h:438
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkGetStringMacro(ExtensionsString)
Returns a string listing all available extensions.
int vtkIdType
Definition: vtkType.h:287