Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# IO/vtkPLOT3DReader.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkPLOT3DReader.h,v $
    00005   Language:  C++
    00006
    00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
    00008   All rights reserved.
    00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
    00010
    00011      This software is distributed WITHOUT ANY WARRANTY; without even
    00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    00013      PURPOSE.  See the above copyright notice for more information.
    00014
    00015 =========================================================================*/
    00096 #ifndef __vtkPLOT3DReader_h
    00097 #define __vtkPLOT3DReader_h
    00098
    00099 #include "vtkStructuredGridSource.h"
    00100
    00101 class vtkIntArray;
    00102 class vtkStructuredGrid;
    00103
    00104 class VTK_IO_EXPORT vtkPLOT3DReader : public vtkStructuredGridSource
    00105 {
    00106 public:
    00107   static vtkPLOT3DReader *New();
    00108   vtkTypeRevisionMacro(vtkPLOT3DReader,vtkStructuredGridSource);
    00109   void PrintSelf(ostream& os, vtkIndent indent);
    00110
    00112
    00113   void SetFileName(const char* name) { this->SetXYZFileName(name); }
    00114   const char* GetFileName() { return this->GetXYZFileName(); }
    00115   vtkSetStringMacro(XYZFileName);
    00116   vtkGetStringMacro(XYZFileName);
    00118
    00120
    00121   vtkSetStringMacro(QFileName);
    00122   vtkGetStringMacro(QFileName);
    00124
    00126
    00132   int GetNumberOfOutputs();
    00133   int GetNumberOfGrids() { return this->GetNumberOfOutputs(); }
    00135
    00137   void SetOutput(int idx, vtkStructuredGrid *output);
    00138
    00140
    00142   vtkSetMacro(BinaryFile, int);
    00143   vtkGetMacro(BinaryFile, int);
    00144   vtkBooleanMacro(BinaryFile, int);
    00146
    00148
    00151   vtkSetMacro(MultiGrid, int);
    00152   vtkGetMacro(MultiGrid, int);
    00153   vtkBooleanMacro(MultiGrid, int);
    00155
    00157
    00160   vtkSetMacro(HasByteCount, int);
    00161   vtkGetMacro(HasByteCount, int);
    00162   vtkBooleanMacro(HasByteCount, int);
    00164
    00166
    00169   vtkSetMacro(IBlanking, int);
    00170   vtkGetMacro(IBlanking, int);
    00171   vtkBooleanMacro(IBlanking, int);
    00173
    00175
    00176   vtkSetMacro(TwoDimensionalGeometry, int);
    00177   vtkGetMacro(TwoDimensionalGeometry, int);
    00178   vtkBooleanMacro(TwoDimensionalGeometry, int);
    00180
    00182
    00186   vtkSetMacro(ForceRead, int);
    00187   vtkGetMacro(ForceRead, int);
    00188   vtkBooleanMacro(ForceRead, int);
    00190
    00192
    00197   vtkSetMacro(DoNotReduceNumberOfOutputs, int);
    00198   vtkGetMacro(DoNotReduceNumberOfOutputs, int);
    00199   vtkBooleanMacro(DoNotReduceNumberOfOutputs, int);
    00201
    00203
    00206   void SetByteOrderToBigEndian();
    00207   void SetByteOrderToLittleEndian();
    00208   vtkSetMacro(ByteOrder, int);
    00209   vtkGetMacro(ByteOrder, int);
    00210   const char *GetByteOrderAsString();
    00212
    00214
    00215   vtkSetMacro(R,float);
    00216   vtkGetMacro(R,float);
    00218
    00220
    00221   vtkSetMacro(Gamma,float);
    00222   vtkGetMacro(Gamma,float);
    00224
    00226
    00227   vtkSetMacro(Uvinf,float);
    00228   vtkGetMacro(Uvinf,float);
    00230
    00232
    00233   vtkSetMacro(Vvinf,float);
    00234   vtkGetMacro(Vvinf,float);
    00236
    00238
    00239   vtkSetMacro(Wvinf,float);
    00240   vtkGetMacro(Wvinf,float);
    00242
    00244
    00246   void SetScalarFunctionNumber(int num);
    00247   vtkGetMacro(ScalarFunctionNumber,int);
    00249
    00251
    00253   void SetVectorFunctionNumber(int num);
    00254   vtkGetMacro(VectorFunctionNumber,int);
    00256
    00258
    00261   void AddFunction(int functionNumber);
    00262   void RemoveFunction(int);
    00263   void RemoveAllFunctions();
    00265
    00268   virtual int CanReadFile(const char* fname);
    00269
    00270 //BTX
    00271   enum
    00272   {
    00273     FILE_BIG_ENDIAN=0,
    00274     FILE_LITTLE_ENDIAN=1
    00275   };
    00276 //ETX
    00277
    00278 protected:
    00279   vtkPLOT3DReader();
    00280   ~vtkPLOT3DReader();
    00281
    00282   void ExecuteInformation();
    00283   void Execute();
    00284
    00285   int CheckFile(FILE*& fp, const char* fname);
    00286   int CheckGeometryFile(FILE*& xyzFp);
    00287   int CheckSolutionFile(FILE*& qFp);
    00288
    00289   void SkipByteCount (FILE* fp);
    00290   int ReadIntBlock  (FILE* fp, int n, int*   block);
    00291   int ReadFloatBlock(FILE* fp, int n, float* block);
    00292
    00293   int GetNumberOfOutputsInternal(FILE* xyzFp, int verify=1);
    00294
    00295   int ReadGeometryHeader(FILE* fp);
    00296   int ReadQHeader(FILE* fp);
    00297
    00298   void CalculateFileSize(FILE* fp);
    00299   long EstimateSize(int ni, int nj, int nk);
    00300
    00301   void AssignAttribute(int fNumber, vtkStructuredGrid* output,
    00302                        int attributeType);
    00303   void MapFunction(int fNumber, vtkStructuredGrid* output);
    00304   void ComputeTemperature(vtkStructuredGrid* output);
    00305   void ComputePressure(vtkStructuredGrid* output);
    00306   void ComputeEnthalpy(vtkStructuredGrid* output);
    00307   void ComputeKineticEnergy(vtkStructuredGrid* output);
    00308   void ComputeVelocityMagnitude(vtkStructuredGrid* output);
    00309   void ComputeEntropy(vtkStructuredGrid* output);
    00310   void ComputeSwirl(vtkStructuredGrid* output);
    00311   void ComputeVelocity(vtkStructuredGrid* output);
    00312   void ComputeVorticity(vtkStructuredGrid* output);
    00313   void ComputePressureGradient(vtkStructuredGrid* output);
    00314
    00315
    00316   //plot3d FileNames
    00317   char *XYZFileName;
    00318   char *QFileName;
    00319
    00320   int BinaryFile;
    00321   int HasByteCount;
    00322   int TwoDimensionalGeometry;
    00323   int MultiGrid;
    00324   int ForceRead;
    00325   int ByteOrder;
    00326   int IBlanking;
    00327   int DoNotReduceNumberOfOutputs;
    00328
    00329   long FileSize;
    00330
    00331   //parameters used in computing derived functions
    00332   float R;
    00333   float Gamma;
    00334   float Uvinf;
    00335   float Vvinf;
    00336   float Wvinf;
    00337
    00338   //functions to read that are not scalars or vectors
    00339   vtkIntArray *FunctionList;
    00340
    00341   int ScalarFunctionNumber;
    00342   int VectorFunctionNumber;
    00343
    00344 private:
    00345   vtkPLOT3DReader(const vtkPLOT3DReader&);  // Not implemented.
    00346   void operator=(const vtkPLOT3DReader&);  // Not implemented.
    00347 };
    00348
    00349 #endif
    00350
    00351