VTK  9.3.1
vtkXdmf3HeavyDataHandler.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
14 #ifndef vtkXdmf3HeavyDataHandler_h
15 #define vtkXdmf3HeavyDataHandler_h
16 
17 #include "vtkIOXdmf3Module.h" // For export macro
18 
19 #include "vtk_xdmf3.h"
20 
21 // clang-format off
22 #include VTKXDMF3_HEADER(core/XdmfInformation.hpp)
23 
24 #include VTKXDMF3_HEADER(core/XdmfItem.hpp)
25 #include VTKXDMF3_HEADER(core/XdmfSharedPtr.hpp)
26 // clang-format on
27 
28 #include "vtkXdmf3ArrayKeeper.h"
29 #include "vtkXdmf3ArraySelection.h"
30 
31 #include VTKXDMF3_HEADER(XdmfCurvilinearGrid.hpp)
32 #include VTKXDMF3_HEADER(XdmfGraph.hpp)
33 #include VTKXDMF3_HEADER(XdmfGrid.hpp)
34 #include VTKXDMF3_HEADER(XdmfRectilinearGrid.hpp)
35 #include VTKXDMF3_HEADER(XdmfRegularGrid.hpp)
36 #include VTKXDMF3_HEADER(XdmfSet.hpp)
37 #include VTKXDMF3_HEADER(XdmfUnstructuredGrid.hpp)
38 #include VTKXDMF3_HEADER(XdmfDomain.hpp)
39 
40 VTK_ABI_NAMESPACE_BEGIN
41 class vtkDataObject;
42 class vtkDataSet;
43 class vtkImageData;
45 class vtkRectilinearGrid;
46 class vtkStructuredGrid;
48 
49 class VTKIOXDMF3_EXPORT vtkXdmf3HeavyDataHandler
50 {
51 public:
55  static shared_ptr<vtkXdmf3HeavyDataHandler> New(vtkXdmf3ArraySelection* fs,
57  vtkXdmf3ArraySelection* sc, unsigned int processor, unsigned int nprocessors, bool dt, double t,
58  vtkXdmf3ArrayKeeper* keeper, bool asTime);
59 
63  vtkDataObject* Populate(shared_ptr<XdmfGrid> item, vtkDataObject* toFill);
64  vtkDataObject* Populate(shared_ptr<XdmfDomain> item, vtkDataObject* toFill);
65  vtkDataObject* Populate(shared_ptr<XdmfGraph> item, vtkDataObject* toFill);
66 
68 
69  shared_ptr<XdmfGrid> testItem1;
70  shared_ptr<XdmfDomain> testItem2;
71 
72 protected:
76  bool ShouldRead(unsigned int piece, unsigned int npieces);
77 
78  bool GridEnabled(shared_ptr<XdmfGrid> grid);
79  bool GridEnabled(shared_ptr<XdmfGraph> graph);
80  bool SetEnabled(shared_ptr<XdmfSet> set);
81 
82  bool ForThisTime(shared_ptr<XdmfGrid> grid);
83  bool ForThisTime(shared_ptr<XdmfGraph> graph);
84 
85  vtkDataObject* MakeUnsGrid(shared_ptr<XdmfUnstructuredGrid> grid, vtkUnstructuredGrid* dataSet,
86  vtkXdmf3ArrayKeeper* keeper);
87 
88  vtkDataObject* MakeRecGrid(
89  shared_ptr<XdmfRectilinearGrid> grid, vtkRectilinearGrid* dataSet, vtkXdmf3ArrayKeeper* keeper);
90 
91  vtkDataObject* MakeCrvGrid(
92  shared_ptr<XdmfCurvilinearGrid> grid, vtkStructuredGrid* dataSet, vtkXdmf3ArrayKeeper* keeper);
93 
94  vtkDataObject* MakeRegGrid(
95  shared_ptr<XdmfRegularGrid> grid, vtkImageData* dataSet, vtkXdmf3ArrayKeeper* keeper);
96  vtkDataObject* MakeGraph(
97  shared_ptr<XdmfGraph> grid, vtkMutableDirectedGraph* dataSet, vtkXdmf3ArrayKeeper* keeper);
98 
99  vtkDataObject* ExtractSet(unsigned int setnum, shared_ptr<XdmfGrid> grid, vtkDataSet* dataSet,
100  vtkUnstructuredGrid* subSet, vtkXdmf3ArrayKeeper* keeper);
101 
102  bool doTime;
103  double time;
104  unsigned int Rank;
105  unsigned int NumProcs;
111  bool AsTime;
112 };
113 
114 VTK_ABI_NAMESPACE_END
115 #endif // vtkXdmf3HeavyDataHandler_h
116 // VTK-HeaderTest-Exclude: vtkXdmf3HeavyDataHandler.h
a dataset that is topologically regular with variable spacing in the three coordinate directions ...
LRU cache of XDMF Arrays.
shared_ptr< XdmfDomain > testItem2
abstract class to specify dataset behavior
Definition: vtkDataSet.h:52
vtkXdmf3ArraySelection * GridsCache
vtkXdmf3ArraySelection * PointArrays
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
dataset represents arbitrary combinations of all possible cell types
An editable directed graph.
internal helper for vtkXdmf3Reader
vtkXdmf3ArraySelection * CellArrays
vtkXdmf3ArraySelection * FieldArrays
topologically regular array of data
vtkXdmf3ArraySelection * SetsCache
general representation of visualization data
Definition: vtkDataObject.h:54
shared_ptr< XdmfGrid > testItem1
helper to identify requested arrays with