forked from Kitware/VTK
-
Notifications
You must be signed in to change notification settings - Fork 0
/
vtkXMLPDataObjectReader.h
125 lines (100 loc) · 3.03 KB
/
vtkXMLPDataObjectReader.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
/*=========================================================================
Program: Visualization Toolkit
Module: vtkXMLPDataObjectReader.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 vtkXMLPDataObjectReader
* @brief Superclass for PVTK XML file readers.
*
* vtkXMLPDataObjectReader provides functionality common to all PVTK XML
* file readers. Concrete subclasses call upon this functionality when needed.
*/
#ifndef vtkXMLPDataObjectReader_h
#define vtkXMLPDataObjectReader_h
#include "vtkIOXMLModule.h" // For export macro
#include "vtkXMLReader.h"
class VTKIOXML_EXPORT vtkXMLPDataObjectReader : public vtkXMLReader
{
public:
vtkTypeMacro(vtkXMLPDataObjectReader, vtkXMLReader);
void PrintSelf(ostream& os, vtkIndent indent) override;
/**
* Get the number of pieces from the summary file being read.
*/
vtkGetMacro(NumberOfPieces, int);
protected:
vtkXMLPDataObjectReader();
~vtkXMLPDataObjectReader() override;
/**
* Delete all piece readers and related information
*/
virtual void DestroyPieces();
/**
* Initialize the output data
*/
void SetupOutputData() override;
/**
* Setup the number of pieces to be read and allocate space accordingly
*/
virtual void SetupPieces(int numPieces);
/**
* Pipeline execute information driver. Called by vtkXMLReader.
*/
int ReadXMLInformation() override;
/**
* Whether or not the current reader can read the current piece
*/
virtual int CanReadPiece(int index) = 0;
/**
* Setup the piece reader at the given index
*/
int ReadPiece(vtkXMLDataElement* ePiece, int index);
/**
* Setup the current piece reader. It needs to be overridden by subclass.
*/
virtual int ReadPiece(vtkXMLDataElement* ePiece) = 0;
///@{
/**
* Methods for creating a filename for each piece in the dataset
*/
char* CreatePieceFileName(const char* fileName);
void SplitFileName();
///@}
///@{
/**
* Callback registered with the PieceProgressObserver.
*/
static void PieceProgressCallbackFunction(vtkObject*, unsigned long, void*, void*);
virtual void PieceProgressCallback() = 0;
///@}
/**
* Pieces from the input summary file.
*/
int NumberOfPieces;
/**
* The piece currently being read.
*/
int Piece;
/**
* The path to the input file without the file name.
*/
char* PathName;
///@{
/**
* Information per-piece.
*/
vtkXMLDataElement** PieceElements;
int* CanReadPieceFlag;
///@}
vtkCallbackCommand* PieceProgressObserver;
private:
vtkXMLPDataObjectReader(const vtkXMLPDataObjectReader&) = delete;
void operator=(const vtkXMLPDataObjectReader&) = delete;
};
#endif