VTK  9.0.1
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 "vtkBitArray.h" // For ivar
67 #include "vtkIOXMLModule.h" // For export macro
68 #include "vtkXMLWriter.h"
69 
70 #include <vector> // std::vector
71 
74 class vtkHyperTree;
75 class vtkHyperTreeGrid;
78 
79 class VTKIOXML_EXPORT vtkXMLHyperTreeGridWriter : public vtkXMLWriter
80 {
81 public:
83  void PrintSelf(ostream& os, vtkIndent indent) override;
85 
90 
94  const char* GetDefaultFileExtension() override;
95 
104  vtkSetMacro(DataSetMajorVersion, int);
105  vtkSetMacro(DataSetMinorVersion, int);
106 
107 protected:
110 
111  const char* GetDataSetName() override;
112 
119  int GetDataSetMajorVersion() override { return DataSetMajorVersion; }
120  int GetDataSetMinorVersion() override { return DataSetMinorVersion; }
121 
122  // Specify that we require HyperTreeGrid input
124 
125  // The most important method, make the XML file for my input.
126  int WriteData() override;
127 
128  // <HyperTreeGrid ...
130 
131  // ... dim, size, origin>
132  void WritePrimaryElementAttributes(ostream&, vtkIndent) override;
133 
134  // Grid coordinates and mask
136 
137  // Tree Descriptor and PointData
140 
141  // </HyperTreeGrid>
143 
144  // Descriptors for individual hypertrees
145  std::vector<vtkBitArray*> Descriptors;
146 
147  // Descriptors for individual hypertrees
148  std::vector<vtkUnsignedLongArray*> NbVerticesbyLevels;
149 
150  // Masks for individual hypertrees
151  std::vector<vtkBitArray*> Masks;
152 
153  // Ids (index selection) for individual hypertrees
154  std::vector<vtkIdList*> Ids;
155 
156  // Helper to simplify writing appended array data
158 
160  vtkAbstractArray* array, vtkIdType treeCount, OffsetsManager& offsets, vtkHyperTree* tree);
161 
167 
169 
170  // Default choice
171  int DataSetMajorVersion = 1;
172  int DataSetMinorVersion = 0;
173 
174 private:
176  void operator=(const vtkXMLHyperTreeGridWriter&) = delete;
177 };
178 
179 #endif
vtkXMLHyperTreeGridWriter::vtkXMLHyperTreeGridWriter
vtkXMLHyperTreeGridWriter()
vtkIdType
int vtkIdType
Definition: vtkType.h:338
vtkXMLHyperTreeGridWriter::GetInput
vtkHyperTreeGrid * GetInput()
Get/Set the writer's input.
vtkXMLHyperTreeGridWriter::~vtkXMLHyperTreeGridWriter
~vtkXMLHyperTreeGridWriter() override
vtkUnsignedLongArray
dynamic, self-adjusting array of unsigned long
Definition: vtkUnsignedLongArray.h:42
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)
vtkXMLHyperTreeGridWriter::WriteTrees_0
int WriteTrees_0(vtkIndent)
vtkXMLHyperTreeGridWriter::MaskOMG
OffsetsManagerGroup * MaskOMG
Definition: vtkXMLHyperTreeGridWriter.h:165
vtkHyperTreeGridNonOrientedCursor
Objects for traversal a HyperTreeGrid.
Definition: vtkHyperTreeGridNonOrientedCursor.h:51
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::WritePointDataAppendedArrayDataHelper
void WritePointDataAppendedArrayDataHelper(vtkAbstractArray *array, vtkIdType treeCount, OffsetsManager &offsets, vtkHyperTree *tree)
vtkXMLHyperTreeGridWriter::CoordsOMG
OffsetsManagerGroup * CoordsOMG
Definition: vtkXMLHyperTreeGridWriter.h:162
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:34
vtkXMLHyperTreeGridWriter::New
static vtkXMLHyperTreeGridWriter * New()
vtkXMLHyperTreeGridWriter
Write VTK XML HyperTreeGrid files.
Definition: vtkXMLHyperTreeGridWriter.h:80
vtkHyperTree
A data object structured as a tree.
Definition: vtkHyperTree.h:179
vtkXMLHyperTreeGridWriter::WritePrimaryElementAttributes
void WritePrimaryElementAttributes(ostream &, vtkIndent) override
OffsetsManagerGroup
Definition: vtkXMLOffsetsManager.h:108
vtkXMLHyperTreeGridWriter::PointDataOMG
OffsetsManagerGroup * PointDataOMG
Definition: vtkXMLHyperTreeGridWriter.h:166
vtkAbstractArray
Abstract superclass for all arrays.
Definition: vtkAbstractArray.h:76
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:65
vtkXMLHyperTreeGridWriter::StartPrimaryElement
int StartPrimaryElement(vtkIndent)
vtkXMLHyperTreeGridWriter::GetDataSetMinorVersion
int GetDataSetMinorVersion() override
Definition: vtkXMLHyperTreeGridWriter.h:120
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:119
vtkXMLHyperTreeGridWriter::WriteGrid
int WriteGrid(vtkIndent)
OffsetsManagerArray
Definition: vtkXMLOffsetsManager.h:155
vtkBitArray.h
vtkXMLHyperTreeGridWriter::NumberOfTrees
int NumberOfTrees
Definition: vtkXMLHyperTreeGridWriter.h:168
vtkXMLHyperTreeGridWriter::WriteData
int WriteData() override
vtkXMLHyperTreeGridWriter::Masks
std::vector< vtkBitArray * > Masks
Definition: vtkXMLHyperTreeGridWriter.h:151
vtkXMLHyperTreeGridWriter::NbVerticesbyLevels
std::vector< vtkUnsignedLongArray * > NbVerticesbyLevels
Definition: vtkXMLHyperTreeGridWriter.h:148
OffsetsManager
Helper class due to PIMPL excess.
Definition: vtkXMLOffsetsManager.h:55
vtkXMLHyperTreeGridWriter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
vtkXMLHyperTreeGridWriter::NbVerticesbyLevelOMG
OffsetsManagerGroup * NbVerticesbyLevelOMG
Definition: vtkXMLHyperTreeGridWriter.h:164
vtkXMLHyperTreeGridWriter::DescriptorOMG
OffsetsManagerGroup * DescriptorOMG
Definition: vtkXMLHyperTreeGridWriter.h:163
vtkHyperTreeGrid
A dataset containing a grid of vtkHyperTree instances arranged as a rectilinear grid.
Definition: vtkHyperTreeGrid.h:97
vtkXMLHyperTreeGridWriter::Ids
std::vector< vtkIdList * > Ids
Definition: vtkXMLHyperTreeGridWriter.h:154
vtkXMLHyperTreeGridWriter::Descriptors
std::vector< vtkBitArray * > Descriptors
Definition: vtkXMLHyperTreeGridWriter.h:145