VTK
|
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