VTK  9.3.0
vtkXMLStructuredDataWriter.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
11 #ifndef vtkXMLStructuredDataWriter_h
12 #define vtkXMLStructuredDataWriter_h
13 
14 #include "vtkIOXMLModule.h" // For export macro
15 #include "vtkXMLWriter.h"
16 
17 VTK_ABI_NAMESPACE_BEGIN
18 class vtkAbstractArray;
19 class vtkInformation;
21 
22 class VTKIOXML_EXPORT vtkXMLStructuredDataWriter : public vtkXMLWriter
23 {
24 public:
26  void PrintSelf(ostream& os, vtkIndent indent) override;
27 
29 
33  vtkSetMacro(NumberOfPieces, int);
34  vtkGetMacro(NumberOfPieces, int);
36 
38 
42  vtkSetMacro(WritePiece, int);
43  vtkGetMacro(WritePiece, int);
45 
47 
50  vtkSetMacro(GhostLevel, int);
51  vtkGetMacro(GhostLevel, int);
53 
55 
60  vtkSetVector6Macro(WriteExtent, int);
61  vtkGetVector6Macro(WriteExtent, int);
63 
64 protected:
67 
68  // Writing drivers defined by subclasses.
69  void WritePrimaryElementAttributes(ostream& os, vtkIndent indent) override;
70  virtual void WriteAppendedPiece(int index, vtkIndent indent);
71  virtual void WriteAppendedPieceData(int index);
72  virtual void WriteInlinePiece(vtkIndent indent);
73  virtual void GetInputExtent(int* extent) = 0;
74 
75  virtual int WriteHeader();
76  virtual int WriteAPiece();
77  virtual int WriteFooter();
78 
79  virtual void AllocatePositionArrays();
80  virtual void DeletePositionArrays();
81 
82  virtual int WriteInlineMode(vtkIndent indent);
83  vtkIdType GetStartTuple(int* extent, vtkIdType* increments, int i, int j, int k);
84  void CalculatePieceFractions(float* fractions);
85 
86  void SetInputUpdateExtent(int piece);
88  vtkInformationVector* outputVector) override;
89 
90  vtkSetVector6Macro(InternalWriteExtent, int);
91 
93 
94  // The extent of the input to write, as specified by user
95  int WriteExtent[6];
96 
97  // The actual extent of the input to write.
98  int InternalWriteExtent[6];
99 
100  // Number of pieces used for streaming.
102 
104 
106 
108 
110 
111  vtkTypeInt64* ExtentPositions;
112 
113  // Appended data offsets of point and cell data arrays.
114  // Store offset position (add TimeStep support)
117 
118 private:
120  void operator=(const vtkXMLStructuredDataWriter&) = delete;
121 };
122 
123 VTK_ABI_NAMESPACE_END
124 #endif
Abstract superclass for all arrays.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:53
a simple class to control print indentation
Definition: vtkIndent.h:29
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Superclass for VTK XML structured data writers.
virtual void WriteAppendedPiece(int index, vtkIndent indent)
void WritePrimaryElementAttributes(ostream &os, vtkIndent indent) override
virtual void WriteAppendedPieceData(int index)
void CalculatePieceFractions(float *fractions)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual void DeletePositionArrays()
virtual void WriteInlinePiece(vtkIndent indent)
vtkIdType GetStartTuple(int *extent, vtkIdType *increments, int i, int j, int k)
virtual void AllocatePositionArrays()
virtual void GetInputExtent(int *extent)=0
static vtkIdType GetNumberOfValues(vtkDataSet *input)
~vtkXMLStructuredDataWriter() override
vtkTypeBool ProcessRequest(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) override
Upstream/Downstream requests form the generalized interface through which executives invoke a algorit...
void SetInputUpdateExtent(int piece)
virtual int WriteInlineMode(vtkIndent indent)
Superclass for VTK's XML file writers.
Definition: vtkXMLWriter.h:54
@ extent
Definition: vtkX3D.h:345
@ index
Definition: vtkX3D.h:246
int vtkTypeBool
Definition: vtkABI.h:64
int vtkIdType
Definition: vtkType.h:315