00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00038 #ifndef __vtkPExodusReader_h
00039 #define __vtkPExodusReader_h
00040
00041 #include "vtkExodusReader.h"
00042
00043 #include <vtkstd/vector>
00044
00045 class vtkTimerLog;
00046
00047 class VTK_HYBRID_EXPORT vtkPExodusReader : public vtkExodusReader
00048 {
00049 public:
00050 static vtkPExodusReader *New();
00051 vtkTypeRevisionMacro(vtkPExodusReader,vtkExodusReader);
00052 void PrintSelf(ostream& os, vtkIndent indent);
00053
00055
00062 vtkSetStringMacro(FilePattern);
00063 vtkGetStringMacro(FilePattern);
00064 vtkSetStringMacro(FilePrefix);
00065 vtkGetStringMacro(FilePrefix);
00067
00069
00071 void SetFileRange(int,int);
00072 void SetFileRange(int* r) { this->SetFileRange(r[0], r[1]); }
00073 vtkGetVector2Macro(FileRange, int);
00075
00079 void SetFileNames(int nfiles, const char **names);
00080
00081 virtual void SetFileName(const char *name);
00082
00084 char **GetFileNames(){return this->FileNames;}
00085
00087 int GetNumberOfFileNames(){return this->NumberOfFileNames;}
00088
00090
00091 vtkGetMacro(NumberOfFiles, int);
00093
00099 void SetGenerateFileIdArray(int flag);
00100 vtkGetMacro(GenerateFileIdArray, int);
00101 vtkBooleanMacro(GenerateFileIdArray, int);
00102
00103
00104
00105 int GetNumberOfVariableArrays();
00106 const char *GetVariableArrayName(int a_which);
00107 void EnableDSPFiltering();
00108 void AddFilter(vtkDSPFilterDefinition *a_filter);
00109 void StartAddingFilter();
00110 void AddFilterInputVar(char *name);
00111 void AddFilterOutputVar(char *name);
00112 void AddFilterNumeratorWeight(double weight);
00113 void AddFilterForwardNumeratorWeight(double weight);
00114 void AddFilterDenominatorWeight(double weight);
00115 void FinishAddingFilter();
00116 void RemoveFilter(char *a_outputVariableName);
00117
00118
00119
00120 protected:
00121 vtkPExodusReader();
00122 ~vtkPExodusReader();
00123
00124
00125 void GetDSPOutputArrays(int exoid, vtkUnstructuredGrid* output);
00126
00127
00129
00130 int DeterminePattern(const char* file);
00131 static int DetermineFileId(const char* file);
00133
00134
00135
00136 void SetUpEmptyGrid();
00137
00138
00139
00140
00141 char* FilePattern;
00142 char* CurrentFilePattern;
00143 char* FilePrefix;
00144 char* CurrentFilePrefix;
00145 char* MultiFileName;
00146 int FileRange[2];
00147 int CurrentFileRange[2];
00148 int NumberOfFiles;
00149 char **FileNames;
00150 int NumberOfFileNames;
00151 int GenerateFileIdArray;
00152
00153 vtkstd::vector<vtkExodusReader*> readerList;
00154
00155
00156 int Timing;
00157 vtkTimerLog *TimerLog;
00158
00159 int RequestInformation(
00160 vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00161 int RequestData(
00162 vtkInformation *, vtkInformationVector **, vtkInformationVector *);
00163
00164 private:
00165 vtkPExodusReader(const vtkPExodusReader&);
00166 void operator=(const vtkPExodusReader&);
00167 };
00168
00169 #endif