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

Utilities/Xdmf/vtk/vtkXdmfReader.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkXdmfReader.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 =========================================================================*/
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 //BTX
00050 class XdmfDOM;
00051 class XdmfFormatMulti;
00052 class XdmfTransform;
00053 class XdmfDataDesc;
00054 class XdmfGrid;
00055 class vtkXdmfDataArray;
00056 
00057 class vtkXdmfReaderInternal;
00058 
00059 //ETX
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   // Return the controller used to coordinate parallel reading. By default,
00217   // it is the global controller.
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   // Callback registered with the SelectionObserver.
00237   static void SelectionModifiedCallback(vtkObject* caller, unsigned long eid,
00238                                         void* clientdata, void* calldata);
00239 
00240 
00241   // The array selections.
00242   vtkDataArraySelection* PointDataArraySelection;
00243   vtkDataArraySelection* CellDataArraySelection;
00244 
00245   // The observer to modify this object when the array selections are
00246   // modified.
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&); // Not implemented
00269   void operator=(const vtkXdmfReader&); // Not implemented  
00270 };
00271 
00272 #endif //__vtkXdmfReader_h

Generated on Tue May 30 12:31:49 2006 for ParaView by doxygen 1.3.5