VTK  9.0.3
vtkXdmf3HeavyDataHandler.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkXdmf3HeavyDataHandler.h
5  Language: C++
6 
7  Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
8  All rights reserved.
9  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
10 
11  This software is distributed WITHOUT ANY WARRANTY; without even
12  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13  PURPOSE. See the above copyright notice for more information.
14 
15 =========================================================================*/
27 #ifndef vtkXdmf3HeavyDataHandler_h
28 #define vtkXdmf3HeavyDataHandler_h
29 
30 #include "vtkIOXdmf3Module.h" // For export macro
31 
32 #include "vtk_xdmf3.h"
33 
34 // clang-format off
35 #include VTKXDMF3_HEADER(core/XdmfInformation.hpp)
36 
37 #include VTKXDMF3_HEADER(core/XdmfItem.hpp)
38 #include VTKXDMF3_HEADER(core/XdmfSharedPtr.hpp)
39 // clang-format on
40 
41 #include "vtkXdmf3ArrayKeeper.h"
42 #include "vtkXdmf3ArraySelection.h"
43 
44 #include VTKXDMF3_HEADER(XdmfCurvilinearGrid.hpp)
45 #include VTKXDMF3_HEADER(XdmfGraph.hpp)
46 #include VTKXDMF3_HEADER(XdmfGrid.hpp)
47 #include VTKXDMF3_HEADER(XdmfRectilinearGrid.hpp)
48 #include VTKXDMF3_HEADER(XdmfRegularGrid.hpp)
49 #include VTKXDMF3_HEADER(XdmfSet.hpp)
50 #include VTKXDMF3_HEADER(XdmfUnstructuredGrid.hpp)
51 #include VTKXDMF3_HEADER(XdmfDomain.hpp)
52 
53 class vtkDataObject;
54 class vtkDataSet;
55 class vtkImageData;
57 class vtkRectilinearGrid;
58 class vtkStructuredGrid;
60 
61 class VTKIOXDMF3_EXPORT vtkXdmf3HeavyDataHandler
62 {
63 public:
67  static shared_ptr<vtkXdmf3HeavyDataHandler> New(vtkXdmf3ArraySelection* fs,
69  vtkXdmf3ArraySelection* sc, unsigned int processor, unsigned int nprocessors, bool dt, double t,
70  vtkXdmf3ArrayKeeper* keeper, bool asTime);
71 
75  vtkDataObject* Populate(shared_ptr<XdmfGrid> item, vtkDataObject* toFill);
76  vtkDataObject* Populate(shared_ptr<XdmfDomain> item, vtkDataObject* toFill);
77  vtkDataObject* Populate(shared_ptr<XdmfGraph> item, vtkDataObject* toFill);
78 
80 
81  shared_ptr<XdmfGrid> testItem1;
82  shared_ptr<XdmfDomain> testItem2;
83 
84 protected:
88  bool ShouldRead(unsigned int piece, unsigned int npieces);
89 
90  bool GridEnabled(shared_ptr<XdmfGrid> grid);
91  bool GridEnabled(shared_ptr<XdmfGraph> graph);
92  bool SetEnabled(shared_ptr<XdmfSet> set);
93 
94  bool ForThisTime(shared_ptr<XdmfGrid> grid);
95  bool ForThisTime(shared_ptr<XdmfGraph> graph);
96 
97  vtkDataObject* MakeUnsGrid(shared_ptr<XdmfUnstructuredGrid> grid, vtkUnstructuredGrid* dataSet,
98  vtkXdmf3ArrayKeeper* keeper);
99 
101  shared_ptr<XdmfRectilinearGrid> grid, vtkRectilinearGrid* dataSet, vtkXdmf3ArrayKeeper* keeper);
102 
104  shared_ptr<XdmfCurvilinearGrid> grid, vtkStructuredGrid* dataSet, vtkXdmf3ArrayKeeper* keeper);
105 
107  shared_ptr<XdmfRegularGrid> grid, vtkImageData* dataSet, vtkXdmf3ArrayKeeper* keeper);
109  shared_ptr<XdmfGraph> grid, vtkMutableDirectedGraph* dataSet, vtkXdmf3ArrayKeeper* keeper);
110 
111  vtkDataObject* ExtractSet(unsigned int setnum, shared_ptr<XdmfGrid> grid, vtkDataSet* dataSet,
112  vtkUnstructuredGrid* subSet, vtkXdmf3ArrayKeeper* keeper);
113 
114  bool doTime;
115  double time;
116  unsigned int Rank;
117  unsigned int NumProcs;
123  bool AsTime;
124 };
125 
126 #endif // vtkXdmf3HeavyDataHandler_h
127 // VTK-HeaderTest-Exclude: vtkXdmf3HeavyDataHandler.h
general representation of visualization data
Definition: vtkDataObject.h:60
abstract class to specify dataset behavior
Definition: vtkDataSet.h:57
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
An editable directed graph.
a dataset that is topologically regular with variable spacing in the three coordinate directions
topologically regular array of data
dataset represents arbitrary combinations of all possible cell types
LRU cache of XDMF Arrays.
helper to identify requested arrays with
internal helper for vtkXdmf3Reader
vtkXdmf3ArraySelection * GridsCache
vtkXdmf3ArraySelection * SetsCache
vtkDataObject * Populate(shared_ptr< XdmfGrid > item, vtkDataObject *toFill)
recursively create and populate vtk data objects for the provided Xdmf item
vtkDataObject * MakeGraph(shared_ptr< XdmfGraph > grid, vtkMutableDirectedGraph *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkDataObject * MakeRecGrid(shared_ptr< XdmfRectilinearGrid > grid, vtkRectilinearGrid *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkDataObject * MakeUnsGrid(shared_ptr< XdmfUnstructuredGrid > grid, vtkUnstructuredGrid *dataSet, vtkXdmf3ArrayKeeper *keeper)
bool GridEnabled(shared_ptr< XdmfGraph > graph)
bool ForThisTime(shared_ptr< XdmfGraph > graph)
bool GridEnabled(shared_ptr< XdmfGrid > grid)
bool ForThisTime(shared_ptr< XdmfGrid > grid)
vtkXdmf3ArraySelection * CellArrays
vtkXdmf3ArraySelection * PointArrays
vtkDataObject * Populate(shared_ptr< XdmfGraph > item, vtkDataObject *toFill)
bool ShouldRead(unsigned int piece, unsigned int npieces)
for parallel partitioning
vtkDataObject * MakeCrvGrid(shared_ptr< XdmfCurvilinearGrid > grid, vtkStructuredGrid *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkXdmf3ArraySelection * FieldArrays
static shared_ptr< vtkXdmf3HeavyDataHandler > New(vtkXdmf3ArraySelection *fs, vtkXdmf3ArraySelection *cs, vtkXdmf3ArraySelection *ps, vtkXdmf3ArraySelection *gc, vtkXdmf3ArraySelection *sc, unsigned int processor, unsigned int nprocessors, bool dt, double t, vtkXdmf3ArrayKeeper *keeper, bool asTime)
factory constructor
vtkDataObject * ExtractSet(unsigned int setnum, shared_ptr< XdmfGrid > grid, vtkDataSet *dataSet, vtkUnstructuredGrid *subSet, vtkXdmf3ArrayKeeper *keeper)
vtkDataObject * Populate(shared_ptr< XdmfDomain > item, vtkDataObject *toFill)
vtkDataObject * MakeRegGrid(shared_ptr< XdmfRegularGrid > grid, vtkImageData *dataSet, vtkXdmf3ArrayKeeper *keeper)
bool SetEnabled(shared_ptr< XdmfSet > set)
shared_ptr< XdmfDomain > testItem2
shared_ptr< XdmfGrid > testItem1