VTK  9.7.20260928
vtkXMLHyperTreeGridWriter.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
53
54#ifndef vtkXMLHyperTreeGridWriter_h
55#define vtkXMLHyperTreeGridWriter_h
56
57#include "vtkIOXMLModule.h" // For export macro
58#include "vtkSmartPointer.h" // For internal attributes
59#include "vtkWrappingHints.h" // For VTK_MARSHALAUTO
60#include "vtkXMLWriter.h"
61
62#include <vector> // std::vector
63
64VTK_ABI_NAMESPACE_BEGIN
67class vtkBitArray;
68class vtkIdList;
69class vtkHyperTree;
72class vtkTypeInt64Array;
73class vtkTypeUInt32Array;
74
76{
77public:
79 void PrintSelf(ostream& os, vtkIndent indent) override;
81
86
90 const char* GetDefaultFileExtension() override;
91
100 vtkSetMacro(DataSetMajorVersion, int);
101 vtkSetMacro(DataSetMinorVersion, int);
102
103protected:
106
107 const char* GetDataSetName() override;
108
117
118 // Specify that we require HyperTreeGrid input
119 int FillInputPortInformation(int port, vtkInformation* info) override;
120
121 // The most important method, make the XML file for my input.
122 int WriteData() override;
123
124 // <HyperTreeGrid ...
126
127 // ... dim, size, origin>
128 void WritePrimaryElementAttributes(ostream&, vtkIndent) override;
129
130 // Grid coordinates and mask
132
133 // Tree Descriptor and CellData
137
138 // </HyperTreeGrid>
140
141 // Descriptors for individual hypertrees
142 std::vector<vtkSmartPointer<vtkBitArray>> Descriptors;
143
144 // Descriptors for individual hypertrees
145 std::vector<vtkSmartPointer<vtkTypeInt64Array>> NbVerticesByLevels;
146
147 // Masks for individual hypertrees
148 std::vector<vtkSmartPointer<vtkBitArray>> Masks;
149
150 // Ids (index selection) for individual hypertrees
151 std::vector<vtkSmartPointer<vtkIdList>> Ids;
152
153 // Helper to simplify writing appended array data
155
157 OffsetsManager& offsets, vtkHyperTree* tree);
158
169
177
179
180 // Default choice
183
184private:
186 void operator=(const vtkXMLHyperTreeGridWriter&) = delete;
187};
188
189VTK_ABI_NAMESPACE_END
190#endif
Helper class due to PIMPL excess.
Abstract superclass for all arrays.
dynamic, self-adjusting array of bits
Definition vtkBitArray.h:34
Objects for traversal a HyperTreeGrid.
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
A data object structured as a tree.
list of point or cell ids
Definition vtkIdList.h:135
a simple class to control print indentation
Definition vtkIndent.h:108
Store vtkAlgorithm input/output information.
Hold a reference to a vtkObjectBase instance.
int WriteGrid(vtkIndent)
void WriteCellDataAppendedArrayDataHelper(vtkAbstractArray *array, vtkIdType numberOfVertices, OffsetsManager &offsets, vtkHyperTree *tree)
int StartPrimaryElement(vtkIndent)
std::vector< vtkSmartPointer< vtkTypeInt64Array > > NbVerticesByLevels
const char * GetDataSetName() override
std::vector< vtkSmartPointer< vtkBitArray > > Descriptors
void WritePrimaryElementAttributes(ostream &, vtkIndent) override
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
int WriteData() override
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
std::vector< vtkSmartPointer< vtkBitArray > > Masks
int WriteTrees_0(vtkIndent)
int WriteTrees_2(vtkIndent)
const char * GetDefaultFileExtension() override
Get the default file extension for files written by this writer.
int WriteTrees_1(vtkIndent)
~vtkXMLHyperTreeGridWriter() override
int FinishPrimaryElement(vtkIndent)
OffsetsManagerGroup * NbVerticesByLevelOMG
std::vector< vtkSmartPointer< vtkIdList > > Ids
static vtkXMLHyperTreeGridWriter * New()
int GetDataSetMajorVersion() override
Methods to define the file's major and minor version numbers.
void WriteAppendedArrayDataHelper(vtkAbstractArray *array, OffsetsManager &offsets)
vtkHyperTreeGrid * GetInput()
Get/Set the writer's input.
int vtkIdType
Definition vtkType.h:363
#define VTK_MARSHALAUTO