VTK  9.1.0
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"
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
53class vtkDataObject;
54class vtkDataSet;
55class vtkImageData;
60
61class VTKIOXDMF3_EXPORT vtkXdmf3HeavyDataHandler
62{
63public:
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
84protected:
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,
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
abstract class to specify dataset behavior
Definition: vtkDataSet.h:166
topologically and geometrically regular array of data
Definition: vtkImageData.h:157
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
vtkDataObject * MakeCrvGrid(shared_ptr< XdmfCurvilinearGrid > grid, vtkStructuredGrid *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkXdmf3ArraySelection * SetsCache
vtkDataObject * MakeRegGrid(shared_ptr< XdmfRegularGrid > grid, vtkImageData *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkDataObject * MakeUnsGrid(shared_ptr< XdmfUnstructuredGrid > grid, vtkUnstructuredGrid *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkDataObject * Populate(shared_ptr< XdmfGrid > item, vtkDataObject *toFill)
recursively create and populate vtk data objects for the provided Xdmf item
vtkDataObject * MakeRecGrid(shared_ptr< XdmfRectilinearGrid > grid, vtkRectilinearGrid *dataSet, vtkXdmf3ArrayKeeper *keeper)
bool GridEnabled(shared_ptr< XdmfGraph > graph)
bool ForThisTime(shared_ptr< XdmfGraph > graph)
vtkDataObject * ExtractSet(unsigned int setnum, shared_ptr< XdmfGrid > grid, vtkDataSet *dataSet, vtkUnstructuredGrid *subSet, vtkXdmf3ArrayKeeper *keeper)
bool GridEnabled(shared_ptr< XdmfGrid > grid)
bool ForThisTime(shared_ptr< XdmfGrid > grid)
vtkDataObject * MakeGraph(shared_ptr< XdmfGraph > grid, vtkMutableDirectedGraph *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkDataObject * Populate(shared_ptr< XdmfDomain > item, vtkDataObject *toFill)
vtkXdmf3ArraySelection * CellArrays
vtkXdmf3ArraySelection * PointArrays
bool ShouldRead(unsigned int piece, unsigned int npieces)
for parallel partitioning
vtkXdmf3ArraySelection * FieldArrays
vtkDataObject * Populate(shared_ptr< XdmfGraph > item, vtkDataObject *toFill)
bool SetEnabled(shared_ptr< XdmfSet > set)
shared_ptr< XdmfDomain > testItem2
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
shared_ptr< XdmfGrid > testItem1