VTK  9.3.20240327
vtkXMLTableReader.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
15 #ifndef vtkXMLTableReader_h
16 #define vtkXMLTableReader_h
17 
18 #include "vtkIOXMLModule.h" // For export macro
19 #include "vtkXMLReader.h"
20 
21 #include <map> // needed for std::map
22 
23 VTK_ABI_NAMESPACE_BEGIN
24 class vtkCellArray;
25 class vtkIdTypeArray;
27 class vtkTable;
28 
29 class VTKIOXML_EXPORT vtkXMLTableReader : public vtkXMLReader
30 {
31 public:
33  void PrintSelf(ostream& os, vtkIndent indent) override;
35 
37 
41  vtkTable* GetOutput(int idx);
43 
48 
53 
60  void SetupUpdateExtent(int piece, int numberOfPieces);
61 
66  void CopyOutputInformation(vtkInformation* outInfo, int port) override;
67 
68 protected:
70  ~vtkXMLTableReader() override;
71 
76 
77  void DestroyPieces();
78 
82  const char* GetDataSetName() override;
83 
87  void GetOutputUpdateExtent(int& piece, int& numberOfPieces);
88 
93 
97  void SetupEmptyOutput() override;
98 
103 
108 
112  void SetupOutputData() override;
113 
117  void SetupOutputInformation(vtkInformation* outInfo) override;
118 
122  void SetupPieces(int numPieces);
123 
127  void ReadXMLData() override;
128 
132  int ReadPrimaryElement(vtkXMLDataElement* ePrimary) override;
133 
137  int ReadPiece(vtkXMLDataElement* ePiece, int piece);
138 
143 
147  int ReadPieceData(int);
148 
150 
160  int EndPiece;
163 
169 
174 
178  int Piece;
179 
184 
190 
191 private:
192  std::map<std::string, int> RowDataTimeStep;
193  std::map<std::string, vtkTypeInt64> RowDataOffset;
194 
195  vtkXMLTableReader(const vtkXMLTableReader&) = delete;
196  void operator=(const vtkXMLTableReader&) = delete;
197 };
198 
199 VTK_ABI_NAMESPACE_END
200 #endif
object to represent cell connectivity
Definition: vtkCellArray.h:285
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition: vtkIndent.h:108
Store vtkAlgorithm input/output information.
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:168
dynamic, self-adjusting array of unsigned char
Represents an XML element and those nested inside.
Superclass for VTK's XML format readers.
Definition: vtkXMLReader.h:59
Read VTK XML Table files.
int UpdatedPiece
The update request.
vtkTable * GetOutput()
Get the reader's output.
int ColumnIsEnabled(vtkXMLDataElement *eRowData)
Check whether the given array element is an enabled array.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
const char * GetDataSetName() override
Get the name of the data set being read.
void SetupOutputData() override
Initialize current output data: allocate arrays for RowData.
int ReadPrimaryElement(vtkXMLDataElement *ePrimary) override
Pipeline execute data driver.
void GetOutputUpdateExtent(int &piece, int &numberOfPieces)
Get the current piece index and the total number of piece in the dataset.
vtkTable * GetOutput(int idx)
Get the reader's output.
int StartPiece
The range of pieces from the file that will form the UpdatedPiece.
int FillOutputPortInformation(int, vtkInformation *) override
Fill the output port information objects for this algorithm.
int NumberOfPieces
The number of Pieces of data found in the file.
int Piece
The piece currently being read.
int NumberOfColumns
The number of columns arrays in the output.
void SetupOutputInformation(vtkInformation *outInfo) override
Setup the output's information.
void SetupEmptyOutput() override
Initialize current output.
vtkIdType GetNumberOfPieces()
Get the number of pieces in the file.
vtkIdType GetNumberOfRows()
Get the number of rows in the output.
int ReadPiece(vtkXMLDataElement *ePiece, int piece)
Setup the piece reader at the given index.
int RowDataNeedToReadTimeStep(vtkXMLDataElement *eNested)
Specify the last time step read, useful to know if we need to read data.
vtkXMLDataElement ** RowElements
The Points element for each piece.
int ReadPiece(vtkXMLDataElement *ePiece)
Setup the current piece reader.
void ReadXMLData() override
Pipeline execute data driver.
void SetupNextPiece()
Initialize the index of the first row to be read in the next piece.
void SetupUpdateExtent(int piece, int numberOfPieces)
Setup the reader as if the given update extent were requested by its output.
void CopyOutputInformation(vtkInformation *outInfo, int port) override
For the specified port, copy the information this reader sets up in SetupOutputInformation to outInfo...
void SetupOutputTotals()
Initialize the total number of rows to be read.
static vtkXMLTableReader * New()
int ReadPieceData(int)
Actually read the current piece data.
void SetupPieces(int numPieces)
Setup the number of pieces to be read and allocate space accordingly.
vtkXMLDataElement ** RowDataElements
The RowData element representations for each piece.
vtkIdType * NumberOfRows
~vtkXMLTableReader() override
@ port
Definition: vtkX3D.h:447
int vtkIdType
Definition: vtkType.h:315