VTK  9.0.2
vtkXMLUnstructuredDataReader.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkXMLUnstructuredDataReader.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
26 #ifndef vtkXMLUnstructuredDataReader_h
27 #define vtkXMLUnstructuredDataReader_h
28 
29 #include "vtkIOXMLModule.h" // For export macro
30 #include "vtkXMLDataReader.h"
31 
32 class vtkCellArray;
33 class vtkIdTypeArray;
34 class vtkPointSet;
36 
37 class VTKIOXML_EXPORT vtkXMLUnstructuredDataReader : public vtkXMLDataReader
38 {
39 public:
41  void PrintSelf(ostream& os, vtkIndent indent) override;
42 
47 
52 
57 
64  void SetupUpdateExtent(int piece, int numberOfPieces, int ghostLevel);
65 
66  // For the specified port, copy the information this reader sets up in
67  // SetupOutputInformation to outInfo
68  void CopyOutputInformation(vtkInformation* outInfo, int port) override;
69 
70 protected:
73 
76 
77  // note that these decref the input array and return an array with a
78  // new reference:
81 
82  // Pipeline execute data driver. Called by vtkXMLReader.
83  void ReadXMLData() override;
84 
85  void SetupEmptyOutput() override;
86  virtual void GetOutputUpdateExtent(int& piece, int& numberOfPieces, int& ghostLevel) = 0;
87  virtual void SetupOutputTotals();
88  virtual void SetupNextPiece();
89  void SetupPieces(int numPieces) override;
90  void DestroyPieces() override;
91 
92  // Setup the output's information.
93  void SetupOutputInformation(vtkInformation* outInfo) override;
94 
95  void SetupOutputData() override;
96  int ReadPiece(vtkXMLDataElement* ePiece) override;
97  int ReadPieceData() override;
98  int ReadCellArray(vtkIdType numberOfCells, vtkIdType totalNumberOfCells,
99  vtkXMLDataElement* eCells, vtkCellArray* outCells);
100 
101  // Read faces and faceoffsets arrays for unstructured grid with polyhedon cells
102  int ReadFaceArray(vtkIdType numberOfCells, vtkXMLDataElement* eCells, vtkIdTypeArray* outFaces,
103  vtkIdTypeArray* outFaceOffsets);
104 
105  // Read a data array whose tuples coorrespond to points.
107 
108  // Get the number of points/cells in the given piece. Valid after
109  // UpdateInformation.
111  virtual vtkIdType GetNumberOfCellsInPiece(int piece) = 0;
112 
113  // The update request.
117 
118  // The range of pieces from the file that will form the UpdatePiece.
120  int EndPiece;
124 
125  // The Points element for each piece.
128 
130  unsigned long PointsOffset;
133  vtkXMLDataElement* eNested, int& cellstimestep, unsigned long& cellsoffset);
134 
135 private:
137  void operator=(const vtkXMLUnstructuredDataReader&) = delete;
138 };
139 
140 #endif
Abstract superclass for all arrays.
object to represent cell connectivity
Definition: vtkCellArray.h:180
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:50
dynamic, self-adjusting array of vtkIdType
a simple class to control print indentation
Definition: vtkIndent.h:34
Store vtkAlgorithm input/output information.
abstract class for specifying dataset behavior
Definition: vtkPointSet.h:63
dynamic, self-adjusting array of unsigned char
Represents an XML element and those nested inside.
Superclass for VTK XML file readers.
Superclass for unstructured data XML readers.
void SetupEmptyOutput() override
virtual vtkIdType GetNumberOfCellsInPiece(int piece)=0
vtkIdType GetNumberOfPoints() override
Get the number of points in the output.
void SetupOutputData() override
int ReadArrayForPoints(vtkXMLDataElement *da, vtkAbstractArray *outArray) override
vtkXMLDataElement * FindDataArrayWithName(vtkXMLDataElement *eParent, const char *name)
int ReadFaceArray(vtkIdType numberOfCells, vtkXMLDataElement *eCells, vtkIdTypeArray *outFaces, vtkIdTypeArray *outFaceOffsets)
int ReadCellArray(vtkIdType numberOfCells, vtkIdType totalNumberOfCells, vtkXMLDataElement *eCells, vtkCellArray *outCells)
int ReadPiece(vtkXMLDataElement *ePiece) override
~vtkXMLUnstructuredDataReader() override
virtual vtkIdType GetNumberOfPointsInPiece(int piece)
int CellsNeedToReadTimeStep(vtkXMLDataElement *eNested, int &cellstimestep, unsigned long &cellsoffset)
virtual void GetOutputUpdateExtent(int &piece, int &numberOfPieces, int &ghostLevel)=0
void SetupUpdateExtent(int piece, int numberOfPieces, int ghostLevel)
Setup the reader as if the given update extent were requested by its output.
vtkPointSet * GetOutputAsPointSet()
vtkIdTypeArray * ConvertToIdTypeArray(vtkDataArray *a)
void DestroyPieces() override
vtkUnsignedCharArray * ConvertToUnsignedCharArray(vtkDataArray *a)
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
virtual vtkIdType GetNumberOfPieces()
Get the number of pieces in the file.
vtkIdType GetNumberOfCells() override
Get the number of cells in the output.
virtual void SetupOutputTotals()
void SetupPieces(int numPieces) override
void SetupOutputInformation(vtkInformation *outInfo) override
int PointsNeedToReadTimeStep(vtkXMLDataElement *eNested)
void CopyOutputInformation(vtkInformation *outInfo, int port) override
@ port
Definition: vtkX3D.h:453
@ name
Definition: vtkX3D.h:225
int vtkIdType
Definition: vtkType.h:338