VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkXdmf3Reader.h 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 =========================================================================*/ 00035 #ifndef vtkXdmf3Reader_h 00036 #define vtkXdmf3Reader_h 00037 00038 #include "vtkIOXdmf3Module.h" // For export macro 00039 #include "vtkDataReader.h" 00040 00041 class vtkXdmf3ArraySelection; 00042 00043 class VTKIOXDMF3_EXPORT vtkXdmf3Reader : public vtkDataReader 00044 { 00045 public: 00046 static vtkXdmf3Reader* New(); 00047 vtkTypeMacro(vtkXdmf3Reader, vtkDataReader); 00048 void PrintSelf(ostream& os, vtkIndent indent); 00049 00051 virtual void SetFileName(const char* filename); 00052 00054 00057 virtual void AddFileName(const char* filename); 00058 virtual void RemoveAllFileNames(); 00060 00062 00065 vtkSetMacro(FileSeriesAsTime, bool); 00066 vtkGetMacro(FileSeriesAsTime, bool); 00068 00070 virtual int CanReadFile(const char* filename); 00071 00075 int GetNumberOfPointArrays(); 00076 00079 const char* GetPointArrayName(int index); 00080 00082 00083 int GetPointArrayStatus(const char* name); 00084 void SetPointArrayStatus(const char* name, int status); 00086 00088 00091 int GetNumberOfCellArrays(); 00092 const char* GetCellArrayName(int index); 00093 void SetCellArrayStatus(const char* name, int status); 00094 int GetCellArrayStatus(const char* name); 00096 00098 00101 int GetNumberOfFieldArrays(); 00102 const char* GetFieldArrayName(int index); 00103 void SetFieldArrayStatus(const char* name, int status); 00104 int GetFieldArrayStatus(const char* name); 00106 00108 00111 int GetNumberOfGrids(); 00112 const char* GetGridName(int index); 00113 void SetGridStatus(const char* gridname, int status); 00114 int GetGridStatus(const char* gridname); 00116 00118 00122 int GetNumberOfSets(); 00123 const char* GetSetName(int index); 00124 void SetSetStatus(const char* gridname, int status); 00125 int GetSetStatus(const char* gridname); 00127 00129 00131 int GetNumberOfSetArrays() { return this->GetNumberOfSets(); } 00132 const char* GetSetArrayName(int index) 00133 { return this->GetSetName(index); } 00134 int GetSetArrayStatus(const char* name) 00135 { return this->GetSetStatus(name); } 00137 00140 virtual vtkGraph* GetSIL(); 00141 00143 int GetSILUpdateStamp(); 00144 00145 protected: 00146 vtkXdmf3Reader(); 00147 ~vtkXdmf3Reader(); 00148 00149 //Overridden to announce that we make general DataObjects. 00150 virtual int FillOutputPortInformation(int port, vtkInformation *info); 00151 00152 //Overridden to handle RDO requests the way we need to 00153 virtual int ProcessRequest(vtkInformation *, vtkInformationVector **, 00154 vtkInformationVector *); 00155 00156 //Overridden to create the correct vtkDataObject subclass for the file. 00157 virtual int RequestDataObject( 00158 vtkInformationVector *); 00159 00160 //Overridden to announce temporal information and to participate in 00161 //structured extent splitting. 00162 virtual int RequestInformation(vtkInformation *, vtkInformationVector **, 00163 vtkInformationVector *); 00164 00165 //Read the XDMF and HDF input files and fill in vtk data objects. 00166 virtual int RequestData(vtkInformation *, vtkInformationVector **, 00167 vtkInformationVector *); 00168 00169 vtkXdmf3ArraySelection* GetFieldArraySelection(); 00170 vtkXdmf3ArraySelection* GetCellArraySelection(); 00171 vtkXdmf3ArraySelection* GetPointArraySelection(); 00172 vtkXdmf3ArraySelection* GetGridsSelection(); 00173 vtkXdmf3ArraySelection* GetSetsSelection(); 00174 vtkXdmf3ArraySelection* FieldArraysCache; 00175 vtkXdmf3ArraySelection* CellArraysCache; 00176 vtkXdmf3ArraySelection* PointArraysCache; 00177 vtkXdmf3ArraySelection* GridsCache; 00178 vtkXdmf3ArraySelection* SetsCache; 00179 00180 private: 00181 vtkXdmf3Reader(const vtkXdmf3Reader&); // Not implemented 00182 void operator=(const vtkXdmf3Reader&); // Not implemented 00183 00184 bool FileSeriesAsTime; 00185 00186 class Internals; 00187 Internals *Internal; 00188 }; 00189 00190 #endif