VTK  9.0.1
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
vtkXdmf3HeavyDataHandler::ForThisTime
bool ForThisTime(shared_ptr< XdmfGraph > graph)
vtkXdmf3HeavyDataHandler::MakeGraph
vtkDataObject * MakeGraph(shared_ptr< XdmfGraph > grid, vtkMutableDirectedGraph *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkXdmf3HeavyDataHandler::NumProcs
unsigned int NumProcs
Definition: vtkXdmf3HeavyDataHandler.h:117
vtkXdmf3HeavyDataHandler::New
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
vtkXdmf3ArrayKeeper.h
vtkMutableDirectedGraph
An editable directed graph.
Definition: vtkMutableDirectedGraph.h:46
vtkXdmf3HeavyDataHandler::Populate
vtkDataObject * Populate(shared_ptr< XdmfDomain > item, vtkDataObject *toFill)
vtkXdmf3HeavyDataHandler::testItem1
shared_ptr< XdmfGrid > testItem1
Definition: vtkXdmf3HeavyDataHandler.h:81
vtkXdmf3HeavyDataHandler::Populate
vtkDataObject * Populate(shared_ptr< XdmfGrid > item, vtkDataObject *toFill)
recursively create and populate vtk data objects for the provided Xdmf item
vtkXdmf3HeavyDataHandler::GridEnabled
bool GridEnabled(shared_ptr< XdmfGrid > grid)
vtkXdmf3HeavyDataHandler::SetsCache
vtkXdmf3ArraySelection * SetsCache
Definition: vtkXdmf3HeavyDataHandler.h:122
vtkRectilinearGrid
a dataset that is topologically regular with variable spacing in the three coordinate directions
Definition: vtkRectilinearGrid.h:52
vtkXdmf3ArraySelection
helper to identify requested arrays with
Definition: vtkXdmf3ArraySelection.h:41
vtkXdmf3HeavyDataHandler::GridsCache
vtkXdmf3ArraySelection * GridsCache
Definition: vtkXdmf3HeavyDataHandler.h:121
vtkXdmf3ArrayKeeper
LRU cache of XDMF Arrays.
Definition: vtkXdmf3ArrayKeeper.h:42
vtkXdmf3ArraySelection.h
vtkXdmf3HeavyDataHandler::PointArrays
vtkXdmf3ArraySelection * PointArrays
Definition: vtkXdmf3HeavyDataHandler.h:120
vtkStructuredGrid
topologically regular array of data
Definition: vtkStructuredGrid.h:58
vtkXdmf3HeavyDataHandler::ExtractSet
vtkDataObject * ExtractSet(unsigned int setnum, shared_ptr< XdmfGrid > grid, vtkDataSet *dataSet, vtkUnstructuredGrid *subSet, vtkXdmf3ArrayKeeper *keeper)
vtkXdmf3HeavyDataHandler::Keeper
vtkXdmf3ArrayKeeper * Keeper
Definition: vtkXdmf3HeavyDataHandler.h:79
vtkXdmf3HeavyDataHandler::GridEnabled
bool GridEnabled(shared_ptr< XdmfGraph > graph)
vtkXdmf3HeavyDataHandler::Rank
unsigned int Rank
Definition: vtkXdmf3HeavyDataHandler.h:116
vtkXdmf3HeavyDataHandler::SetEnabled
bool SetEnabled(shared_ptr< XdmfSet > set)
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:42
vtkXdmf3HeavyDataHandler::time
double time
Definition: vtkXdmf3HeavyDataHandler.h:115
vtkXdmf3HeavyDataHandler::CellArrays
vtkXdmf3ArraySelection * CellArrays
Definition: vtkXdmf3HeavyDataHandler.h:119
vtkXdmf3HeavyDataHandler::MakeRecGrid
vtkDataObject * MakeRecGrid(shared_ptr< XdmfRectilinearGrid > grid, vtkRectilinearGrid *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkXdmf3HeavyDataHandler::MakeUnsGrid
vtkDataObject * MakeUnsGrid(shared_ptr< XdmfUnstructuredGrid > grid, vtkUnstructuredGrid *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkXdmf3HeavyDataHandler::FieldArrays
vtkXdmf3ArraySelection * FieldArrays
Definition: vtkXdmf3HeavyDataHandler.h:118
vtkXdmf3HeavyDataHandler
internal helper for vtkXdmf3Reader
Definition: vtkXdmf3HeavyDataHandler.h:62
vtkXdmf3HeavyDataHandler::ForThisTime
bool ForThisTime(shared_ptr< XdmfGrid > grid)
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:57
vtkXdmf3HeavyDataHandler::MakeRegGrid
vtkDataObject * MakeRegGrid(shared_ptr< XdmfRegularGrid > grid, vtkImageData *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkXdmf3HeavyDataHandler::MakeCrvGrid
vtkDataObject * MakeCrvGrid(shared_ptr< XdmfCurvilinearGrid > grid, vtkStructuredGrid *dataSet, vtkXdmf3ArrayKeeper *keeper)
vtkXdmf3HeavyDataHandler::AsTime
bool AsTime
Definition: vtkXdmf3HeavyDataHandler.h:123
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:93
vtkXdmf3HeavyDataHandler::ShouldRead
bool ShouldRead(unsigned int piece, unsigned int npieces)
for parallel partitioning
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:60
vtkXdmf3HeavyDataHandler::Populate
vtkDataObject * Populate(shared_ptr< XdmfGraph > item, vtkDataObject *toFill)
vtkXdmf3HeavyDataHandler::doTime
bool doTime
Definition: vtkXdmf3HeavyDataHandler.h:114
vtkXdmf3HeavyDataHandler::testItem2
shared_ptr< XdmfDomain > testItem2
Definition: vtkXdmf3HeavyDataHandler.h:82