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 
100  vtkDataObject* MakeRecGrid(
101  shared_ptr<XdmfRectilinearGrid> grid, vtkRectilinearGrid* dataSet, vtkXdmf3ArrayKeeper* keeper);
102 
103  vtkDataObject* MakeCrvGrid(
104  shared_ptr<XdmfCurvilinearGrid> grid, vtkStructuredGrid* dataSet, vtkXdmf3ArrayKeeper* keeper);
105 
106  vtkDataObject* MakeRegGrid(
107  shared_ptr<XdmfRegularGrid> grid, vtkImageData* dataSet, vtkXdmf3ArrayKeeper* keeper);
108  vtkDataObject* MakeGraph(
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::NumProcs
unsigned int NumProcs
Definition: vtkXdmf3HeavyDataHandler.h:117
vtkXdmf3ArrayKeeper.h
vtkMutableDirectedGraph
An editable directed graph.
Definition: vtkMutableDirectedGraph.h:45
vtkXdmf3HeavyDataHandler::testItem1
shared_ptr< XdmfGrid > testItem1
Definition: vtkXdmf3HeavyDataHandler.h:81
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:51
vtkXdmf3ArraySelection
helper to identify requested arrays with
Definition: vtkXdmf3ArraySelection.h:40
vtkXdmf3HeavyDataHandler::GridsCache
vtkXdmf3ArraySelection * GridsCache
Definition: vtkXdmf3HeavyDataHandler.h:121
vtkXdmf3ArrayKeeper
LRU cache of XDMF Arrays.
Definition: vtkXdmf3ArrayKeeper.h:41
vtkXdmf3ArraySelection.h
vtkXdmf3HeavyDataHandler::PointArrays
vtkXdmf3ArraySelection * PointArrays
Definition: vtkXdmf3HeavyDataHandler.h:120
vtkStructuredGrid
topologically regular array of data
Definition: vtkStructuredGrid.h:57
vtkXdmf3HeavyDataHandler::Keeper
vtkXdmf3ArrayKeeper * Keeper
Definition: vtkXdmf3HeavyDataHandler.h:79
vtkXdmf3HeavyDataHandler::Rank
unsigned int Rank
Definition: vtkXdmf3HeavyDataHandler.h:116
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:41
vtkXdmf3HeavyDataHandler::time
double time
Definition: vtkXdmf3HeavyDataHandler.h:115
vtkXdmf3HeavyDataHandler::CellArrays
vtkXdmf3ArraySelection * CellArrays
Definition: vtkXdmf3HeavyDataHandler.h:119
vtkXdmf3HeavyDataHandler::FieldArrays
vtkXdmf3ArraySelection * FieldArrays
Definition: vtkXdmf3HeavyDataHandler.h:118
vtkXdmf3HeavyDataHandler
internal helper for vtkXdmf3Reader
Definition: vtkXdmf3HeavyDataHandler.h:61
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:56
vtkXdmf3HeavyDataHandler::AsTime
bool AsTime
Definition: vtkXdmf3HeavyDataHandler.h:123
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:92
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:59
vtkXdmf3HeavyDataHandler::doTime
bool doTime
Definition: vtkXdmf3HeavyDataHandler.h:114
vtkXdmf3HeavyDataHandler::testItem2
shared_ptr< XdmfDomain > testItem2
Definition: vtkXdmf3HeavyDataHandler.h:82