VTK
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 "XdmfInformation.hpp"
33 
34 #include "XdmfItem.hpp"
35 #include "XdmfSharedPtr.hpp"
36 
37 #include "vtkXdmf3ArrayKeeper.h"
38 #include "vtkXdmf3ArraySelection.h"
39 
40 #include "XdmfCurvilinearGrid.hpp"
41 #include "XdmfGraph.hpp"
42 #include "XdmfGrid.hpp"
43 #include "XdmfRectilinearGrid.hpp"
44 #include "XdmfRegularGrid.hpp"
45 #include "XdmfSet.hpp"
46 #include "XdmfUnstructuredGrid.hpp"
47 #include "XdmfDomain.hpp"
48 
49 class vtkDataObject;
50 class vtkDataSet;
51 class vtkImageData;
53 class vtkRectilinearGrid;
54 class vtkStructuredGrid;
56 
57 class VTKIOXDMF3_EXPORT vtkXdmf3HeavyDataHandler
58 {
59 public:
63  static shared_ptr<vtkXdmf3HeavyDataHandler> New(
69  unsigned int processor, unsigned int nprocessors,
70  bool dt, double t,
71  vtkXdmf3ArrayKeeper *keeper,
72  bool asTime );
73 
78 
82  vtkDataObject *Populate(shared_ptr<XdmfGrid> item, vtkDataObject *toFill);
83  vtkDataObject *Populate(shared_ptr<XdmfDomain> item, vtkDataObject *toFill);
84  vtkDataObject *Populate(shared_ptr<XdmfGraph> item, vtkDataObject *toFill);
85 
87 
88  shared_ptr<XdmfGrid> testItem1;
89  shared_ptr<XdmfDomain> testItem2;
90 
91 protected:
92 
97 
101  bool ShouldRead(unsigned int piece, unsigned int npieces);
102 
103  bool GridEnabled(shared_ptr<XdmfGrid> grid);
104  bool GridEnabled(shared_ptr<XdmfGraph> graph);
105  bool SetEnabled(shared_ptr<XdmfSet> set);
106 
107  bool ForThisTime(shared_ptr<XdmfGrid> grid);
108  bool ForThisTime(shared_ptr<XdmfGraph> graph);
109 
110  vtkDataObject *MakeUnsGrid(shared_ptr<XdmfUnstructuredGrid> grid,
111  vtkUnstructuredGrid *dataSet,
112  vtkXdmf3ArrayKeeper *keeper);
113 
114  vtkDataObject *MakeRecGrid(shared_ptr<XdmfRectilinearGrid> grid,
115  vtkRectilinearGrid *dataSet,
116  vtkXdmf3ArrayKeeper *keeper);
117 
118  vtkDataObject *MakeCrvGrid(shared_ptr<XdmfCurvilinearGrid> grid,
119  vtkStructuredGrid *dataSet,
120  vtkXdmf3ArrayKeeper *keeper);
121 
122  vtkDataObject *MakeRegGrid(shared_ptr<XdmfRegularGrid> grid,
123  vtkImageData *dataSet,
124  vtkXdmf3ArrayKeeper *keeper);
125  vtkDataObject *MakeGraph(shared_ptr<XdmfGraph> grid,
126  vtkMutableDirectedGraph *dataSet,
127  vtkXdmf3ArrayKeeper *keeper);
128 
129  vtkDataObject *ExtractSet(unsigned int setnum, shared_ptr<XdmfGrid> grid,
130  vtkDataSet *dataSet,
131  vtkUnstructuredGrid *subSet,
132  vtkXdmf3ArrayKeeper *keeper);
133 
134  bool doTime;
135  double time;
136  unsigned int Rank;
137  unsigned int NumProcs;
143  bool AsTime;
144 };
145 
146 #endif //vtkXdmf3HeavyDataHandler_h
147 // VTK-HeaderTest-Exclude: vtkXdmf3HeavyDataHandler.h
vtkXdmf3HeavyDataHandler::NumProcs
unsigned int NumProcs
Definition: vtkXdmf3HeavyDataHandler.h:137
vtkXdmf3ArrayKeeper.h
vtkMutableDirectedGraph
An editable directed graph.
Definition: vtkMutableDirectedGraph.h:51
vtkXdmf3HeavyDataHandler::testItem1
shared_ptr< XdmfGrid > testItem1
Definition: vtkXdmf3HeavyDataHandler.h:88
vtkXdmf3HeavyDataHandler::SetsCache
vtkXdmf3ArraySelection * SetsCache
Definition: vtkXdmf3HeavyDataHandler.h:142
vtkRectilinearGrid
a dataset that is topologically regular with variable spacing in the three coordinate directions
Definition: vtkRectilinearGrid.h:56
vtkXdmf3ArraySelection
helper to identify requested arrays with
Definition: vtkXdmf3ArraySelection.h:40
vtkXdmf3HeavyDataHandler::GridsCache
vtkXdmf3ArraySelection * GridsCache
Definition: vtkXdmf3HeavyDataHandler.h:141
vtkXdmf3ArrayKeeper
LRU cache of XDMF Arrays.
Definition: vtkXdmf3ArrayKeeper.h:41
vtkXdmf3ArraySelection.h
vtkXdmf3HeavyDataHandler::PointArrays
vtkXdmf3ArraySelection * PointArrays
Definition: vtkXdmf3HeavyDataHandler.h:140
vtkStructuredGrid
topologically regular array of data
Definition: vtkStructuredGrid.h:63
vtkXdmf3HeavyDataHandler::Keeper
vtkXdmf3ArrayKeeper * Keeper
Definition: vtkXdmf3HeavyDataHandler.h:86
vtkXdmf3HeavyDataHandler::Rank
unsigned int Rank
Definition: vtkXdmf3HeavyDataHandler.h:136
vtkImageData
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
vtkXdmf3HeavyDataHandler::time
double time
Definition: vtkXdmf3HeavyDataHandler.h:135
vtkXdmf3HeavyDataHandler::CellArrays
vtkXdmf3ArraySelection * CellArrays
Definition: vtkXdmf3HeavyDataHandler.h:139
vtkXdmf3HeavyDataHandler::FieldArrays
vtkXdmf3ArraySelection * FieldArrays
Definition: vtkXdmf3HeavyDataHandler.h:138
vtkXdmf3HeavyDataHandler
internal helper for vtkXdmf3Reader
Definition: vtkXdmf3HeavyDataHandler.h:57
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkXdmf3HeavyDataHandler::AsTime
bool AsTime
Definition: vtkXdmf3HeavyDataHandler.h:143
vtkUnstructuredGrid
dataset represents arbitrary combinations of all possible cell types
Definition: vtkUnstructuredGrid.h:87
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:64
vtkXdmf3HeavyDataHandler::doTime
bool doTime
Definition: vtkXdmf3HeavyDataHandler.h:134
vtkXdmf3HeavyDataHandler::testItem2
shared_ptr< XdmfDomain > testItem2
Definition: vtkXdmf3HeavyDataHandler.h:89