00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00030
#ifndef __vtkXMLPDataReader_h
00031
#define __vtkXMLPDataReader_h
00032
00033
#include "vtkXMLReader.h"
00034
00035
class vtkDataArray;
00036
class vtkDataSet;
00037
class vtkXMLDataReader;
00038
00039 class VTK_IO_EXPORT vtkXMLPDataReader :
public vtkXMLReader
00040 {
00041
public:
00042 vtkTypeRevisionMacro(vtkXMLPDataReader,
vtkXMLReader);
00043
void PrintSelf(ostream& os,
vtkIndent indent);
00044
00046
00047 vtkGetMacro(NumberOfPieces,
int);
00049
00050
protected:
00051 vtkXMLPDataReader();
00052 ~vtkXMLPDataReader();
00053
00054
00055
void ReadXMLInformation();
00056
int ReadPrimaryElement(
vtkXMLDataElement* ePrimary);
00057
00058
vtkDataSet* GetPieceInputAsDataSet(
int piece);
00059
void SetupOutputInformation();
00060
void SetupOutputData();
00061
00062
virtual vtkXMLDataReader* CreatePieceReader()=0;
00063
virtual vtkIdType GetNumberOfPoints()=0;
00064
virtual vtkIdType GetNumberOfCells()=0;
00065
virtual void CopyArrayForPoints(
vtkDataArray* inArray,
00066
vtkDataArray* outArray)=0;
00067
virtual void CopyArrayForCells(
vtkDataArray* inArray,
00068
vtkDataArray* outArray)=0;
00069
00070
virtual void SetupPieces(
int numPieces);
00071
virtual void DestroyPieces();
00072
int ReadPiece(
vtkXMLDataElement* ePiece,
int index);
00073
virtual int ReadPiece(
vtkXMLDataElement* ePiece);
00074
int ReadPieceData(
int index);
00075
virtual int ReadPieceData();
00076
int CanReadPiece(
int index);
00077
00078
char* CreatePieceFileName(
const char* fileName);
00079
void SplitFileName();
00080
00081
00082 int NumberOfPieces;
00083
00084
00085 int GhostLevel;
00086
00087
00088 int Piece;
00089
00090
00091 char* PathName;
00092
00093
00094 vtkXMLDataElement** PieceElements;
00095 vtkXMLDataReader** PieceReaders;
00096 int* CanReadPieceFlag;
00097
00098
00099 vtkXMLDataElement* PPointDataElement;
00100 vtkXMLDataElement* PCellDataElement;
00101
00102
private:
00103 vtkXMLPDataReader(
const vtkXMLPDataReader&);
00104
void operator=(
const vtkXMLPDataReader&);
00105 };
00106
00107
#endif