forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvtkXMLStructuredDataWriter.h
136 lines (105 loc) · 3.81 KB
/
vtkXMLStructuredDataWriter.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
/*=========================================================================
Program: Visualization Toolkit
Module: vtkXMLStructuredDataWriter.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
All rights reserved.
See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
/**
* @class vtkXMLStructuredDataWriter
* @brief Superclass for VTK XML structured data writers.
*
* vtkXMLStructuredDataWriter provides VTK XML writing functionality that
* is common among all the structured data formats.
*/
#ifndef vtkXMLStructuredDataWriter_h
#define vtkXMLStructuredDataWriter_h
#include "vtkIOXMLModule.h" // For export macro
#include "vtkXMLWriter.h"
class vtkAbstractArray;
class vtkInformation;
class vtkInformationVector;
class VTKIOXML_EXPORT vtkXMLStructuredDataWriter : public vtkXMLWriter
{
public:
vtkTypeMacro(vtkXMLStructuredDataWriter,vtkXMLWriter);
void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
//@{
/**
* Get/Set the number of pieces used to stream the image through the
* pipeline while writing to the file.
*/
vtkSetMacro(NumberOfPieces, int);
vtkGetMacro(NumberOfPieces, int);
//@}
//@{
/**
* Get/Set the piece to write to the file. If this is
* negative, all pieces will be written.
*/
vtkSetMacro(WritePiece, int);
vtkGetMacro(WritePiece, int);
//@}
//@{
/**
* Get/Set the ghost level used to pad each piece.
*/
vtkSetMacro(GhostLevel, int);
vtkGetMacro(GhostLevel, int);
//@}
//@{
/**
* Get/Set the extent of the input that should be treated as the
* WholeExtent in the output file. The default is the WholeExtent
* of the input.
*/
vtkSetVector6Macro(WriteExtent, int);
vtkGetVector6Macro(WriteExtent, int);
//@}
protected:
vtkXMLStructuredDataWriter();
~vtkXMLStructuredDataWriter() VTK_OVERRIDE;
// Writing drivers defined by subclasses.
void WritePrimaryElementAttributes(ostream &os, vtkIndent indent) VTK_OVERRIDE;
virtual void WriteAppendedPiece(int index, vtkIndent indent);
virtual void WriteAppendedPieceData(int index);
virtual void WriteInlinePiece(vtkIndent indent);
virtual void GetInputExtent(int* extent)=0;
virtual int WriteHeader();
virtual int WriteAPiece();
virtual int WriteFooter();
virtual void AllocatePositionArrays();
virtual void DeletePositionArrays();
virtual int WriteInlineMode(vtkIndent indent);
vtkIdType GetStartTuple(int* extent, vtkIdType* increments,
int i, int j, int k);
void CalculatePieceFractions(float* fractions);
void SetInputUpdateExtent(int piece);
int ProcessRequest(vtkInformation* request,
vtkInformationVector** inputVector,
vtkInformationVector* outputVector) VTK_OVERRIDE;
vtkSetVector6Macro(InternalWriteExtent, int);
static vtkIdType GetNumberOfValues(vtkDataSet* input);
// The extent of the input to write, as specified by user
int WriteExtent[6];
// The actual extent of the input to write.
int InternalWriteExtent[6];
// Number of pieces used for streaming.
int NumberOfPieces;
int WritePiece;
float* ProgressFractions;
int CurrentPiece;
int GhostLevel;
vtkTypeInt64* ExtentPositions;
// Appended data offsets of point and cell data arrays.
// Store offset position (add TimeStep support)
OffsetsManagerArray *PointDataOM;
OffsetsManagerArray *CellDataOM;
private:
vtkXMLStructuredDataWriter(const vtkXMLStructuredDataWriter&) VTK_DELETE_FUNCTION;
void operator=(const vtkXMLStructuredDataWriter&) VTK_DELETE_FUNCTION;
};
#endif