VTK  9.5.2
vtkXMLUnstructuredDataWriter.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
10
11#ifndef vtkXMLUnstructuredDataWriter_h
12#define vtkXMLUnstructuredDataWriter_h
13
14#include "vtkDeprecation.h" // For VTK_DEPRECATED_IN_9_5_0
15#include "vtkIOXMLModule.h" // For export macro
16#include "vtkXMLWriter.h"
17
18#include "vtkSmartPointer.h" // for vtkSmartPointer
19
20VTK_ABI_NAMESPACE_BEGIN
21class vtkPointSet;
22class vtkCellArray;
23class vtkCellIterator;
24class vtkDataArray;
25class vtkIdTypeArray;
27
28class VTKIOXML_EXPORT vtkXMLUnstructuredDataWriter : public vtkXMLWriter
29{
30public:
32 void PrintSelf(ostream& os, vtkIndent indent) override;
33
35
39 vtkSetMacro(NumberOfPieces, int);
40 vtkGetMacro(NumberOfPieces, int);
42
44
48 vtkSetMacro(WritePiece, int);
49 vtkGetMacro(WritePiece, int);
51
53
56 vtkSetMacro(GhostLevel, int);
57 vtkGetMacro(GhostLevel, int);
59
60 // See the vtkAlgorithm for a description of what these do
63
64protected:
67
69 VTK_DEPRECATED_IN_9_5_0("Use GetPointSetInput() instead.")
71 const char* GetDataSetName() override = 0;
72 virtual void SetInputUpdateExtent(int piece, int numPieces, int ghostLevel);
73
74 virtual int WriteHeader();
75 virtual int WriteAPiece();
76 virtual int WriteFooter();
77
78 virtual void AllocatePositionArrays();
79 virtual void DeletePositionArrays();
80
81 virtual int WriteInlineMode(vtkIndent indent);
83 virtual void WriteInlinePiece(vtkIndent indent);
84
85 virtual void WriteAppendedPieceAttributes(int index);
86 virtual void WriteAppendedPiece(int index, vtkIndent indent);
87 virtual void WriteAppendedPieceData(int index);
88
89 void WriteCellsInline(const char* name, vtkCellIterator* cellIter, vtkIdType numCells,
90 vtkIdType cellSizeEstimate, vtkIndent indent);
91
93 const char* name, vtkCellArray* cells, vtkDataArray* types, vtkIndent indent);
94
95 // New API with face information for polyhedron cell support.
96 VTK_DEPRECATED_IN_9_4_0("Use WritePolyCellsInline instead.")
97 void WriteCellsInline(const char* name, vtkCellArray* cells, vtkDataArray* types,
98 vtkIdTypeArray* faces, vtkIdTypeArray* faceOffsets, vtkIndent indent);
99
100 void WritePolyCellsInline(const char* name, vtkCellArray* cells, vtkDataArray* types,
101 vtkCellArray* faces, vtkCellArray* faceOffsets, vtkIndent indent);
102
103 void WriteCellsInlineWorker(const char* name, vtkDataArray* types, vtkIndent indent);
104
106 const char* name, vtkDataArray* types, vtkIndent indent, OffsetsManagerGroup* cellsManager);
107
108 VTK_DEPRECATED_IN_9_4_0("Use WritePolyCellsAppended instead.")
109 void WriteCellsAppended(const char* name, vtkDataArray* types, vtkIdTypeArray* faces,
110 vtkIdTypeArray* faceOffsets, vtkIndent indent, OffsetsManagerGroup* cellsManager);
111
112 void WriteCellsAppended(const char* name, vtkCellIterator* cellIter, vtkIdType numCells,
113 vtkIndent indent, OffsetsManagerGroup* cellsManager);
114
115 void WritePolyCellsAppended(const char* name, vtkDataArray* types, vtkCellArray* faces,
116 vtkCellArray* faceOffsets, vtkIndent indent, OffsetsManagerGroup* cellsManager);
117
119 vtkCellArray* cells, vtkDataArray* types, int timestep, OffsetsManagerGroup* cellsManager);
120
122 vtkIdType cellSizeEstimate, int timestep, OffsetsManagerGroup* cellsManager);
123
124 // New API with face information for polyhedron cell support.
125 VTK_DEPRECATED_IN_9_4_0("Use WritePolyCellsAppendedData instead.")
127 vtkIdTypeArray* faceOffsets, int timestep, OffsetsManagerGroup* cellsManager);
128
130 vtkCellArray* faceOffsets, int timestep, OffsetsManagerGroup* cellsManager);
131
133 vtkDataArray* types, int timestep, OffsetsManagerGroup* cellsManager);
134
135 void ConvertCells(vtkCellIterator* cellIter, vtkIdType numCells, vtkIdType cellSizeEstimate);
136
138
139 // For polyhedron support, conversion results are stored in Faces and FaceOffsets
140 VTK_DEPRECATED_IN_9_4_0("Use ConvertPolyFaces instead.")
141 void ConvertFaces(vtkIdTypeArray* faces, vtkIdTypeArray* faceOffsets);
142
143 void ConvertPolyFaces(vtkCellArray* faces, vtkCellArray* faceOffsets);
144
145 // Get the number of points/cells. Valid after Update has been
146 // invoked on the input.
149 void CalculateDataFractions(float* fractions);
150 void CalculateCellFractions(float* fractions, vtkIdType typesSize);
151
152 // Number of pieces used for streaming.
154
155 // Which piece to write, if not all.
157
158 // The ghost level on each piece.
160
161 // Positions of attributes for each piece.
163
164 // For TimeStep support
168
169 // Hold the new cell representation arrays while writing a piece.
172
174
179 VTK_DEPRECATED_IN_9_4_0("This member is deprecated.")
181 VTK_DEPRECATED_IN_9_4_0("This member is deprecated.")
183
184 // Hold the face arrays for polyhedron cells.
189
190private:
192 void operator=(const vtkXMLUnstructuredDataWriter&) = delete;
193};
194
195VTK_ABI_NAMESPACE_END
196#endif
object to represent cell connectivity
Efficient cell iterator for vtkDataSet topologies.
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
concrete class for storing a set of points
Definition vtkPointSet.h:59
Hold a reference to a vtkObjectBase instance.
dataset represents arbitrary combinations of all possible cell types
void CalculateDataFractions(float *fractions)
void WriteCellsInline(const char *name, vtkCellIterator *cellIter, vtkIdType numCells, vtkIdType cellSizeEstimate, vtkIndent indent)
vtkPointSet * GetPointSetInput()
vtkSmartPointer< vtkDataArray > FaceConnectivity
virtual void WriteAppendedPiece(int index, vtkIndent indent)
virtual vtkIdType GetNumberOfInputCells()=0
virtual void SetInputUpdateExtent(int piece, int numPieces, int ghostLevel)
void WriteCellsInline(const char *name, vtkCellArray *cells, vtkDataArray *types, vtkIndent indent)
virtual void WriteAppendedPieceAttributes(int index)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void WriteInlinePiece(vtkIndent indent)
void WritePolyCellsAppendedData(vtkCellArray *cells, vtkDataArray *types, vtkCellArray *faces, vtkCellArray *faceOffsets, int timestep, OffsetsManagerGroup *cellsManager)
void ConvertPolyFaces(vtkCellArray *faces, vtkCellArray *faceOffsets)
vtkSmartPointer< vtkDataArray > CellPoints
virtual int WriteInlineMode(vtkIndent indent)
void WriteCellsAppendedDataWorker(vtkDataArray *types, int timestep, OffsetsManagerGroup *cellsManager)
vtkIdTypeArray * LegacyFaces
Legacy support – hold the face arrays for legacy polyhedron cells and deprecated writing methods.
vtkSmartPointer< vtkDataArray > FaceOffsets
void WriteCellsInlineWorker(const char *name, vtkDataArray *types, vtkIndent indent)
void WriteCellsAppended(const char *name, vtkDataArray *types, vtkIndent indent, OffsetsManagerGroup *cellsManager)
vtkSmartPointer< vtkDataArray > PolyhedronToFaces
virtual void WriteInlinePieceAttributes()
void WriteCellsAppendedData(vtkCellArray *cells, vtkDataArray *types, int timestep, OffsetsManagerGroup *cellsManager)
vtkSmartPointer< vtkDataArray > PolyhedronOffsets
~vtkXMLUnstructuredDataWriter() override
virtual void WriteAppendedPieceData(int index)
vtkSmartPointer< vtkDataArray > CellOffsets
void ConvertCells(vtkCellIterator *cellIter, vtkIdType numCells, vtkIdType cellSizeEstimate)
virtual void AllocatePositionArrays()
void WritePolyCellsAppended(const char *name, vtkDataArray *types, vtkCellArray *faces, vtkCellArray *faceOffsets, vtkIndent indent, OffsetsManagerGroup *cellsManager)
void WritePolyCellsInline(const char *name, vtkCellArray *cells, vtkDataArray *types, vtkCellArray *faces, vtkCellArray *faceOffsets, vtkIndent indent)
virtual vtkIdType GetNumberOfInputPoints()
void CalculateCellFractions(float *fractions, vtkIdType typesSize)
vtkTypeBool ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Upstream/Downstream requests form the generalized interface through which executives invoke a algorit...
const char * GetDataSetName() override=0
void ConvertFaces(vtkIdTypeArray *faces, vtkIdTypeArray *faceOffsets)
virtual void DeletePositionArrays()
int vtkTypeBool
Definition vtkABI.h:64
#define vtkDataArray
#define VTK_DEPRECATED_IN_9_4_0(reason)
#define VTK_DEPRECATED_IN_9_5_0(reason)
int vtkIdType
Definition vtkType.h:332