00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00034 #ifndef __vtkXdmfReader_h
00035 #define __vtkXdmfReader_h
00036
00037 #include "vtkDataReader.h"
00038
00039 class vtkDoubleArray;
00040 class vtkDataArray;
00041 class vtkRectilinearGrid;
00042 class vtkDataObject;
00043 class vtkRectilinearGrid;
00044 class vtkDataArraySelection;
00045 class vtkCallbackCommand;
00046 class vtkDataSet;
00047 class vtkMultiProcessController;
00048
00049
00050 class XdmfDOM;
00051 class XdmfFormatMulti;
00052 class XdmfTransform;
00053 class XdmfDataDesc;
00054 class XdmfGrid;
00055 class vtkXdmfDataArray;
00056
00057 class vtkXdmfReaderInternal;
00058
00059
00060
00061 class VTK_EXPORT vtkXdmfReader : public vtkDataReader
00062 {
00063 public:
00064 static vtkXdmfReader* New();
00065 vtkTypeRevisionMacro(vtkXdmfReader, vtkDataReader);
00066 void PrintSelf(ostream& os, vtkIndent indent);
00067
00069
00070 vtkDataObject *GetOutput();
00071 vtkDataObject *GetOutput(int idx);
00073
00075
00077 vtkGetObjectMacro(PointDataArraySelection, vtkDataArraySelection);
00078 vtkGetObjectMacro(CellDataArraySelection, vtkDataArraySelection);
00080
00082
00083 int GetNumberOfPointArrays();
00084 int GetNumberOfCellArrays();
00086
00088
00090 const char* GetPointArrayName(int index);
00091 const char* GetCellArrayName(int index);
00093
00095 int GetNumberOfParameters();
00096
00098
00099 int GetParameterType(int index);
00100 int GetParameterType(const char *Name);
00101 const char *GetParameterTypeAsString(int index);
00102 const char *GetParameterTypeAsString(const char *Name);
00104
00106
00107 int GetParameterRange(int index, int Shape[3]);
00108 int GetParameterRange(const char *Name, int Shape[3]);
00109 const char *GetParameterRangeAsString(int index);
00110 const char *GetParameterRangeAsString(const char *Name);
00112
00114 const char *GetParameterName(int index);
00115
00117
00118 int SetParameterIndex(const char *Name, int CurrentIndex);
00119 int SetParameterIndex(int ParameterIndex, int CurrentIndex);
00120 int GetParameterIndex(const char *Name);
00121 int GetParameterIndex(int index);
00123
00125
00126 int GetParameterLength(const char *Name);
00127 int GetParameterLength(int index);
00129
00130
00132
00133 const char *GetParameterValue(int index);
00134 const char *GetParameterValue(const char *Name);
00136
00138
00140 int GetPointArrayStatus(const char* name);
00141 int GetCellArrayStatus(const char* name);
00142 void SetPointArrayStatus(const char* name, int status);
00143 void SetCellArrayStatus(const char* name, int status);
00145
00147
00148 void EnableAllArrays();
00149 void DisableAllArrays();
00151
00153 const char *GetXdmfDOMHandle();
00154
00160 virtual void SetDomainName(const char*);
00161 vtkGetStringMacro(DomainName);
00163
00165 void SetGridName(const char*);
00166
00168
00169 int GetNumberOfDomains();
00170 int GetNumberOfGrids();
00172
00174
00175 const char* GetDomainName(int idx);
00176 const char* GetGridName(int idx);
00177 int GetGridIndex(const char* name);
00179
00181
00182 void SetStride(int x, int y, int z);
00183 void SetStride(int xyz[3])
00184 {
00185 this->SetStride(xyz[0], xyz[1], xyz[2]);
00186 }
00187 vtkGetVector3Macro(Stride, int);
00189
00191
00192 void EnableGrid(const char* name);
00193 void EnableGrid(int idx);
00194 void EnableAllGrids();
00196
00198
00199 void DisableGrid(const char* name);
00200 void DisableGrid(int idx);
00201 void DisableAllGrids();
00203
00205
00206 int GetGridSetting(const char* name);
00207 int GetGridSetting(int idx);
00209
00211 virtual int CanReadFile(const char* fname);
00212
00214 void SetController(vtkMultiProcessController* controller);
00215
00216
00217
00218 vtkGetObjectMacro(Controller,vtkMultiProcessController);
00219
00220 protected:
00221 vtkXdmfReader();
00222 ~vtkXdmfReader();
00223
00224 virtual int ProcessRequest(vtkInformation *request,
00225 vtkInformationVector **inputVector,
00226 vtkInformationVector *outputVector);
00227
00228 virtual int RequestDataObject(vtkInformationVector *outputVector);
00229
00230 virtual int RequestData(vtkInformation *, vtkInformationVector **,
00231 vtkInformationVector *);
00232 virtual int RequestInformation(vtkInformation *, vtkInformationVector **,
00233 vtkInformationVector *);
00234 virtual int FillOutputPortInformation(int port, vtkInformation *info);
00235
00236
00237 static void SelectionModifiedCallback(vtkObject* caller, unsigned long eid,
00238 void* clientdata, void* calldata);
00239
00240
00241
00242 vtkDataArraySelection* PointDataArraySelection;
00243 vtkDataArraySelection* CellDataArraySelection;
00244
00245
00246
00247 vtkCallbackCommand* SelectionObserver;
00248
00249 XdmfDOM *DOM;
00250
00251 char* DomainName;
00252 char* GridName;
00253
00254 vtkXdmfReaderInternal* Internals;
00255
00256 int Stride[3];
00257 int OutputsInitialized;
00258
00259 int GridsModified;
00260
00261 void UpdateGrids();
00262
00263 int NumberOfEnabledActualGrids;
00264
00265 vtkMultiProcessController *Controller;
00266
00267 private:
00268 vtkXdmfReader(const vtkXdmfReader&);
00269 void operator=(const vtkXdmfReader&);
00270 };
00271
00272 #endif //__vtkXdmfReader_h