VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/IO/Xdmf3/vtkXdmf3HeavyDataHandler.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkXdmf3HeavyDataHandler.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 =========================================================================*/
00030 #ifndef vtkXdmf3HeavyDataHandler_h
00031 #define vtkXdmf3HeavyDataHandler_h
00032 
00033 #include "vtkIOXdmf3Module.h" // For export macro
00034 
00035 #include "XdmfItem.hpp"
00036 
00037 class vtkDataObject;
00038 class vtkDataSet;
00039 class vtkImageData;
00040 class vtkMutableDirectedGraph;
00041 class vtkRectilinearGrid;
00042 class vtkStructuredGrid;
00043 class vtkUnstructuredGrid;
00044 class vtkXdmf3ArrayKeeper;
00045 class vtkXdmf3ArraySelection;
00046 
00047 class XdmfCurvilinearGrid;
00048 class XdmfGraph;
00049 class XdmfGrid;
00050 class XdmfItem;
00051 class XdmfRectilinearGrid;
00052 class XdmfRegularGrid;
00053 class XdmfSet;
00054 class XdmfUnstructuredGrid;
00055 
00056 class VTKIOXDMF3_EXPORT vtkXdmf3HeavyDataHandler
00057 {
00058 public:
00060 
00061   static shared_ptr<vtkXdmf3HeavyDataHandler> New(
00062       vtkXdmf3ArraySelection *fs,
00063       vtkXdmf3ArraySelection *cs,
00064       vtkXdmf3ArraySelection *ps,
00065       vtkXdmf3ArraySelection *gc,
00066       vtkXdmf3ArraySelection *sc,
00067       unsigned int processor, unsigned int nprocessors,
00068       bool dt, double t,
00069       vtkXdmf3ArrayKeeper *keeper,
00070       bool asTime );
00072 
00074   ~vtkXdmf3HeavyDataHandler();
00075 
00078   vtkDataObject *Populate(shared_ptr<XdmfItem> item, vtkDataObject *toFill);
00079 
00080   vtkXdmf3ArrayKeeper* Keeper;
00081 
00082 protected:
00083 
00085   vtkXdmf3HeavyDataHandler();
00086 
00088   bool ShouldRead(unsigned int piece, unsigned int npieces);
00089 
00090   bool GridEnabled(shared_ptr<XdmfGrid> grid);
00091   bool GridEnabled(shared_ptr<XdmfGraph> graph);
00092   bool SetEnabled(shared_ptr<XdmfSet> set);
00093 
00094   bool ForThisTime(shared_ptr<XdmfGrid> grid);
00095   bool ForThisTime(shared_ptr<XdmfGraph> graph);
00096 
00097   vtkDataObject *MakeUnsGrid(shared_ptr<XdmfUnstructuredGrid> grid,
00098                              vtkUnstructuredGrid *dataSet,
00099                              vtkXdmf3ArrayKeeper *keeper);
00100 
00101   vtkDataObject *MakeRecGrid(shared_ptr<XdmfRectilinearGrid> grid,
00102                              vtkRectilinearGrid *dataSet,
00103                              vtkXdmf3ArrayKeeper *keeper);
00104 
00105   vtkDataObject *MakeCrvGrid(shared_ptr<XdmfCurvilinearGrid> grid,
00106                              vtkStructuredGrid *dataSet,
00107                              vtkXdmf3ArrayKeeper *keeper);
00108 
00109   vtkDataObject *MakeRegGrid(shared_ptr<XdmfRegularGrid> grid,
00110                              vtkImageData *dataSet,
00111                              vtkXdmf3ArrayKeeper *keeper);
00112   vtkDataObject *MakeGraph(shared_ptr<XdmfGraph> grid,
00113                            vtkMutableDirectedGraph *dataSet,
00114                            vtkXdmf3ArrayKeeper *keeper);
00115 
00116   vtkDataObject *ExtractSet(unsigned int setnum, shared_ptr<XdmfGrid> grid,
00117                             vtkDataSet *dataSet,
00118                             vtkUnstructuredGrid *subSet,
00119                             vtkXdmf3ArrayKeeper *keeper);
00120 
00121   bool doTime;
00122   double time;
00123   unsigned int Rank;
00124   unsigned int NumProcs;
00125   vtkXdmf3ArraySelection* FieldArrays;
00126   vtkXdmf3ArraySelection* CellArrays;
00127   vtkXdmf3ArraySelection* PointArrays;
00128   vtkXdmf3ArraySelection* GridsCache;
00129   vtkXdmf3ArraySelection* SetsCache;
00130   bool AsTime;
00131 };
00132 
00133 #endif //vtkXdmf3HeavyDataHandler_h