VTK  9.0.1
VTXvtkVTU.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: VTXvtkVTU.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14  =========================================================================*/
15 
16 /*
17  * VTXvtkVTU.h : class that supports UnstructuredMesh schema in VTK XML
18  * format .vtu extends abstract VTXvtkBase
19  *
20  * Created on: June 24, 2019
21  * Author: William F Godoy godoywf@ornl.gov
22  */
23 
24 #ifndef VTK_IO_ADIOS2_VTX_SCHEMA_VTK_VTXxmlVTU_h
25 #define VTK_IO_ADIOS2_VTX_SCHEMA_VTK_VTXxmlVTU_h
26 
27 #include <map>
28 #include <string>
29 #include <vector>
30 
31 #include "vtkNew.h"
32 #include "vtkUnstructuredGrid.h"
33 
35 
36 namespace vtx
37 {
38 namespace schema
39 {
40 class VTXvtkVTU : public VTXvtkBase
41 {
42 public:
43  VTXvtkVTU(const std::string& schema, adios2::IO& io, adios2::Engine& engine);
44  ~VTXvtkVTU();
45 
46 private:
48  vtkNew<vtkUnstructuredGrid> UnstructuredGrid;
49 
51  std::vector<size_t> BlockIDs;
52 
53  void DoFill(vtkMultiBlockDataSet* multiBlock, const size_t step) final;
54  void ReadPiece(const size_t step, const size_t pieceID) final;
55 
56  void Init() final;
57 
58 #define declare_type(T) \
59  void SetBlocks(adios2::Variable<T> variable, types::DataArray& dataArray, const size_t step) \
60  final;
62 #undef declare_type
63 
64  template <class T>
65  void SetBlocksCommon(
66  adios2::Variable<T> variable, types::DataArray& dataArray, const size_t step);
67 };
68 
69 } // end namespace schema
70 } // end namespace vtx
71 
72 #endif /* VTK_IO_ADIOS2_VTX_SCHEMA_VTK_VTXxmlVTU_h */
#define declare_type(T)
Definition: VTXvtkVTU.h:58
#define VTK_IO_ADIOS2_VTX_ARRAY_TYPE(MACRO)
Definition: VTXTypes.h:56
Composite dataset that organizes datasets into blocks.
VTXvtkVTU(const std::string &schema, adios2::IO &io, adios2::Engine &engine)