VTK  9.1.0
vtkXMLHyperTreeGridWriter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkXMLHyperTreeGridWriter.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 =========================================================================*/
63 #ifndef vtkXMLHyperTreeGridWriter_h
64 #define vtkXMLHyperTreeGridWriter_h
65 
66 #include "vtkIOXMLModule.h" // For export macro
67 #include "vtkSmartPointer.h" // For internal attributes
68 #include "vtkXMLWriter.h"
69 
70 #include <vector> // std::vector
71 
74 class vtkBitArray;
75 class vtkIdList;
76 class vtkHyperTree;
77 class vtkHyperTreeGrid;
79 class vtkTypeInt64Array;
80 class vtkTypeUInt32Array;
81 
82 class VTKIOXML_EXPORT vtkXMLHyperTreeGridWriter : public vtkXMLWriter
83 {
84 public:
86  void PrintSelf(ostream& os, vtkIndent indent) override;
88 
93 
97  const char* GetDefaultFileExtension() override;
98 
107  vtkSetMacro(DataSetMajorVersion, int);
108  vtkSetMacro(DataSetMinorVersion, int);
109 
110 protected:
113 
114  const char* GetDataSetName() override;
115 
122  int GetDataSetMajorVersion() override { return DataSetMajorVersion; }
123  int GetDataSetMinorVersion() override { return DataSetMinorVersion; }
124 
125  // Specify that we require HyperTreeGrid input
127 
128  // The most important method, make the XML file for my input.
129  int WriteData() override;
130 
131  // <HyperTreeGrid ...
133 
134  // ... dim, size, origin>
135  void WritePrimaryElementAttributes(ostream&, vtkIndent) override;
136 
137  // Grid coordinates and mask
139 
140  // Tree Descriptor and CellData
144 
145  // </HyperTreeGrid>
147 
148  // Descriptors for individual hypertrees
149  std::vector<vtkSmartPointer<vtkBitArray>> Descriptors;
150 
151  // Descriptors for individual hypertrees
152  std::vector<vtkSmartPointer<vtkTypeInt64Array>> NbVerticesByLevels;
153 
154  // Masks for individual hypertrees
155  std::vector<vtkSmartPointer<vtkBitArray>> Masks;
156 
157  // Ids (index selection) for individual hypertrees
158  std::vector<vtkSmartPointer<vtkIdList>> Ids;
159 
160  // Helper to simplify writing appended array data
162 
164  OffsetsManager& offsets, vtkHyperTree* tree);
165 
167  {
168  void Initialize();
169 
175  } MetaDataForVersion2;
176 
184 
186 
187  // Default choice
190 
191 private:
193  void operator=(const vtkXMLHyperTreeGridWriter&) = delete;
194 };
195 
196 #endif
vtkXMLHyperTreeGridWriter::DataSetMajorVersion
int DataSetMajorVersion
Definition: vtkXMLHyperTreeGridWriter.h:188
vtkXMLHyperTreeGridWriter::vtkXMLHyperTreeGridWriter
vtkXMLHyperTreeGridWriter()
vtkXMLHyperTreeGridWriter::Descriptors
std::vector< vtkSmartPointer< vtkBitArray > > Descriptors
Definition: vtkXMLHyperTreeGridWriter.h:149
vtkIdType
int vtkIdType
Definition: vtkType.h:332
vtkXMLHyperTreeGridWriter::GetInput
vtkHyperTreeGrid * GetInput()
Get/Set the writer's input.
vtkXMLHyperTreeGridWriter::NbVerticesByLevelOMG
OffsetsManagerGroup * NbVerticesByLevelOMG
Definition: vtkXMLHyperTreeGridWriter.h:179
vtkXMLHyperTreeGridWriter::~vtkXMLHyperTreeGridWriter
~vtkXMLHyperTreeGridWriter() override
vtkXMLHyperTreeGridWriter::HyperTreeGridMetaDataForVersion2::Initialize
void Initialize()
vtkXMLHyperTreeGridWriter::FinishPrimaryElement
int FinishPrimaryElement(vtkIndent)
vtkXMLHyperTreeGridWriter::FillInputPortInformation
int FillInputPortInformation(int port, vtkInformation *info) override
Fill the input port information objects for this algorithm.
vtkXMLWriter.h
vtkXMLHyperTreeGridWriter::WriteAppendedArrayDataHelper
void WriteAppendedArrayDataHelper(vtkAbstractArray *array, OffsetsManager &offsets)
vtkSmartPointer< vtkBitArray >
vtkXMLHyperTreeGridWriter::WriteTrees_0
int WriteTrees_0(vtkIndent)
vtkXMLHyperTreeGridWriter::MaskOMG
OffsetsManagerGroup * MaskOMG
Definition: vtkXMLHyperTreeGridWriter.h:180
vtkXMLHyperTreeGridWriter::HyperTreeGridMetaDataForVersion2::BreadthFirstIdMap
vtkSmartPointer< vtkIdList > BreadthFirstIdMap
Definition: vtkXMLHyperTreeGridWriter.h:173
vtkHyperTreeGridNonOrientedCursor
Objects for traversal a HyperTreeGrid.
Definition: vtkHyperTreeGridNonOrientedCursor.h:51
vtkXMLHyperTreeGridWriter::CellDataOMG
OffsetsManagerGroup * CellDataOMG
Definition: vtkXMLHyperTreeGridWriter.h:181
vtkXMLHyperTreeGridWriter::WriteTrees_2
int WriteTrees_2(vtkIndent)
vtkXMLHyperTreeGridWriter::HyperTreeGridMetaDataForVersion2::NumberOfVerticesPerDepth
vtkSmartPointer< vtkTypeInt64Array > NumberOfVerticesPerDepth
Definition: vtkXMLHyperTreeGridWriter.h:172
vtkXMLHyperTreeGridWriter::WriteTrees_1
int WriteTrees_1(vtkIndent)
vtkX3D::port
@ port
Definition: vtkX3D.h:453
vtkXMLHyperTreeGridWriter::GetDefaultFileExtension
const char * GetDefaultFileExtension() override
Get the default file extension for files written by this writer.
vtkXMLWriter
Superclass for VTK's XML file writers.
Definition: vtkXMLWriter.h:62
vtkXMLHyperTreeGridWriter::GetDataSetName
const char * GetDataSetName() override
vtkXMLHyperTreeGridWriter::HyperTreeGridMetaDataForVersion2::TreeIds
vtkSmartPointer< vtkTypeInt64Array > TreeIds
Definition: vtkXMLHyperTreeGridWriter.h:171
vtkXMLHyperTreeGridWriter::CoordsOMG
OffsetsManagerGroup * CoordsOMG
Definition: vtkXMLHyperTreeGridWriter.h:177
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:113
vtkXMLHyperTreeGridWriter::NbVerticesByLevels
std::vector< vtkSmartPointer< vtkTypeInt64Array > > NbVerticesByLevels
Definition: vtkXMLHyperTreeGridWriter.h:152
vtkXMLHyperTreeGridWriter::TreeIdsOMG
OffsetsManagerGroup * TreeIdsOMG
Definition: vtkXMLHyperTreeGridWriter.h:182
vtkSmartPointer.h
vtkIdList
list of point or cell ids
Definition: vtkIdList.h:140
vtkXMLHyperTreeGridWriter::New
static vtkXMLHyperTreeGridWriter * New()
vtkXMLHyperTreeGridWriter
Write VTK XML HyperTreeGrid files.
Definition: vtkXMLHyperTreeGridWriter.h:83
vtkHyperTree
A data object structured as a tree.
Definition: vtkHyperTree.h:177
vtkXMLHyperTreeGridWriter::Masks
std::vector< vtkSmartPointer< vtkBitArray > > Masks
Definition: vtkXMLHyperTreeGridWriter.h:155
vtkXMLHyperTreeGridWriter::WritePrimaryElementAttributes
void WritePrimaryElementAttributes(ostream &, vtkIndent) override
OffsetsManagerGroup
Definition: vtkXMLOffsetsManager.h:108
vtkXMLHyperTreeGridWriter::HyperTreeGridMetaDataForVersion2::Descriptors
vtkSmartPointer< vtkBitArray > Descriptors
Definition: vtkXMLHyperTreeGridWriter.h:170
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:76
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:183
vtkXMLHyperTreeGridWriter::StartPrimaryElement
int StartPrimaryElement(vtkIndent)
vtkXMLHyperTreeGridWriter::GetDataSetMinorVersion
int GetDataSetMinorVersion() override
Definition: vtkXMLHyperTreeGridWriter.h:123
vtkX3D::info
@ info
Definition: vtkX3D.h:382
vtkXMLHyperTreeGridWriter::GetDataSetMajorVersion
int GetDataSetMajorVersion() override
Methods to define the file's major and minor version numbers.
Definition: vtkXMLHyperTreeGridWriter.h:122
vtkXMLHyperTreeGridWriter::HyperTreeGridMetaDataForVersion2::DepthPerTree
vtkSmartPointer< vtkTypeUInt32Array > DepthPerTree
Definition: vtkXMLHyperTreeGridWriter.h:174
vtkXMLHyperTreeGridWriter::WriteGrid
int WriteGrid(vtkIndent)
OffsetsManagerArray
Definition: vtkXMLOffsetsManager.h:155
vtkXMLHyperTreeGridWriter::DataSetMinorVersion
int DataSetMinorVersion
Definition: vtkXMLHyperTreeGridWriter.h:189
vtkXMLHyperTreeGridWriter::NumberOfTrees
int NumberOfTrees
Definition: vtkXMLHyperTreeGridWriter.h:185
vtkXMLHyperTreeGridWriter::WriteData
int WriteData() override
OffsetsManager
Helper class due to PIMPL excess.
Definition: vtkXMLOffsetsManager.h:55
vtkBitArray
dynamic, self-adjusting array of bits
Definition: vtkBitArray.h:34
vtkXMLHyperTreeGridWriter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkXMLHyperTreeGridWriter::DepthPerTreeOMG
OffsetsManagerGroup * DepthPerTreeOMG
Definition: vtkXMLHyperTreeGridWriter.h:183
vtkXMLHyperTreeGridWriter::WriteCellDataAppendedArrayDataHelper
void WriteCellDataAppendedArrayDataHelper(vtkAbstractArray *array, vtkIdType numberOfVertices, OffsetsManager &offsets, vtkHyperTree *tree)
vtkXMLHyperTreeGridWriter::HyperTreeGridMetaDataForVersion2
Definition: vtkXMLHyperTreeGridWriter.h:167
vtkXMLHyperTreeGridWriter::DescriptorOMG
OffsetsManagerGroup * DescriptorOMG
Definition: vtkXMLHyperTreeGridWriter.h:178
vtkXMLHyperTreeGridWriter::Ids
std::vector< vtkSmartPointer< vtkIdList > > Ids
Definition: vtkXMLHyperTreeGridWriter.h:158
vtkHyperTreeGrid
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
Definition: vtkHyperTreeGrid.h:96