VTK  9.3.20240424
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
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 "vtkXMLWriter.h"
60
61#include <vector> // std::vector
62
63VTK_ABI_NAMESPACE_BEGIN
66class vtkBitArray;
67class vtkIdList;
68class vtkHyperTree;
71class vtkTypeInt64Array;
72class vtkTypeUInt32Array;
73
74class VTKIOXML_EXPORT vtkXMLHyperTreeGridWriter : public vtkXMLWriter
75{
76public:
78 void PrintSelf(ostream& os, vtkIndent indent) override;
80
85
89 const char* GetDefaultFileExtension() override;
90
99 vtkSetMacro(DataSetMajorVersion, int);
100 vtkSetMacro(DataSetMinorVersion, int);
101
102protected:
105
106 const char* GetDataSetName() override;
107
114 int GetDataSetMajorVersion() override { return DataSetMajorVersion; }
115 int GetDataSetMinorVersion() override { return DataSetMinorVersion; }
116
117 // Specify that we require HyperTreeGrid input
118 int FillInputPortInformation(int port, vtkInformation* info) override;
119
120 // The most important method, make the XML file for my input.
121 int WriteData() override;
122
123 // <HyperTreeGrid ...
125
126 // ... dim, size, origin>
127 void WritePrimaryElementAttributes(ostream&, vtkIndent) override;
128
129 // Grid coordinates and mask
131
132 // Tree Descriptor and CellData
136
137 // </HyperTreeGrid>
139
140 // Descriptors for individual hypertrees
141 std::vector<vtkSmartPointer<vtkBitArray>> Descriptors;
142
143 // Descriptors for individual hypertrees
144 std::vector<vtkSmartPointer<vtkTypeInt64Array>> NbVerticesByLevels;
145
146 // Masks for individual hypertrees
147 std::vector<vtkSmartPointer<vtkBitArray>> Masks;
148
149 // Ids (index selection) for individual hypertrees
150 std::vector<vtkSmartPointer<vtkIdList>> Ids;
151
152 // Helper to simplify writing appended array data
154
156 OffsetsManager& offsets, vtkHyperTree* tree);
157
159 {
161
167 } MetaDataForVersion2;
168
176
178
179 // Default choice
182
183private:
185 void operator=(const vtkXMLHyperTreeGridWriter&) = delete;
186};
187
188VTK_ABI_NAMESPACE_END
189#endif
Helper class due to PIMPL excess.
Abstract superclass for all arrays.
dynamic, self-adjusting array of bits
Definition vtkBitArray.h:29
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:133
a simple class to control print indentation
Definition vtkIndent.h:108
Store vtkAlgorithm input/output information.
Hold a reference to a vtkObjectBase instance.
Write VTK XML HyperTreeGrid files.
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.
Superclass for VTK's XML file writers.
int vtkIdType
Definition vtkType.h:315