00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026
#ifndef __vtkXMLDataReader_h
00027
#define __vtkXMLDataReader_h
00028
00029
#include "vtkXMLReader.h"
00030
00031 class VTK_IO_EXPORT vtkXMLDataReader :
public vtkXMLReader
00032 {
00033
public:
00034 vtkTypeRevisionMacro(vtkXMLDataReader,
vtkXMLReader);
00035
void PrintSelf(ostream& os,
vtkIndent indent);
00036
00038
virtual vtkIdType GetNumberOfPoints()=0;
00039
00041
virtual vtkIdType GetNumberOfCells()=0;
00042
00043
protected:
00044 vtkXMLDataReader();
00045 ~vtkXMLDataReader();
00046
00047
00048
virtual void CreateXMLParser();
00049
virtual void DestroyXMLParser();
00050
int ReadPrimaryElement(
vtkXMLDataElement* ePrimary);
00051
void SetupOutputInformation();
00052
void SetupOutputData();
00053
00054
00055
virtual void SetupPieces(
int numPieces);
00056
virtual void DestroyPieces();
00057
00058
00059
int ReadPiece(
vtkXMLDataElement* ePiece,
int piece);
00060
virtual int ReadPiece(
vtkXMLDataElement* ePiece);
00061
00062
00063
int ReadPieceData(
int piece);
00064
virtual int ReadPieceData();
00065
00066
00067
virtual int ReadArrayForPoints(
vtkXMLDataElement* da,
00068
vtkDataArray* outArray);
00069
virtual int ReadArrayForCells(
vtkXMLDataElement* da,
00070
vtkDataArray* outArray);
00071
00072
00073
int ReadData(
vtkXMLDataElement* da,
void* data,
int wordType,
int startWord,
00074
int numWords);
00075
00076
00077
static void DataProgressCallbackFunction(
vtkObject*,
unsigned long,
void*,
00078
void*);
00079
00080
virtual void DataProgressCallback();
00081
00082
00083 int NumberOfPieces;
00084
00085
00086 vtkXMLDataElement** PointDataElements;
00087 vtkXMLDataElement** CellDataElements;
00088
00089
00090 int Piece;
00091
00092
00093
00094 int NumberOfPointArrays;
00095 int NumberOfCellArrays;
00096
00097
00098
00099 int InReadData;
00100
00101
00102 vtkCallbackCommand* DataProgressObserver;
00103
00104
private:
00105 vtkXMLDataReader(
const vtkXMLDataReader&);
00106
void operator=(
const vtkXMLDataReader&);
00107 };
00108
00109
#endif