IO/vtkXMLUnstructuredDataReader.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00025 #ifndef __vtkXMLUnstructuredDataReader_h
00026 #define __vtkXMLUnstructuredDataReader_h
00027
00028 #include "vtkXMLDataReader.h"
00029
00030 class vtkCellArray;
00031 class vtkIdTypeArray;
00032 class vtkPointSet;
00033 class vtkUnsignedCharArray;
00034
00035 class VTK_IO_EXPORT vtkXMLUnstructuredDataReader : public vtkXMLDataReader
00036 {
00037 public:
00038 vtkTypeRevisionMacro(vtkXMLUnstructuredDataReader,vtkXMLDataReader);
00039 void PrintSelf(ostream& os, vtkIndent indent);
00040
00042 virtual vtkIdType GetNumberOfPoints();
00043
00045 virtual vtkIdType GetNumberOfCells();
00046
00051 void SetupUpdateExtent(int piece, int numberOfPieces, int ghostLevel);
00052
00053 protected:
00054 vtkXMLUnstructuredDataReader();
00055 ~vtkXMLUnstructuredDataReader();
00056
00057 vtkPointSet* GetOutputAsPointSet();
00058 vtkXMLDataElement* FindDataArrayWithName(vtkXMLDataElement* eParent,
00059 const char* name);
00060 vtkIdTypeArray* ConvertToIdTypeArray(vtkDataArray* a);
00061 vtkUnsignedCharArray* ConvertToUnsignedCharArray(vtkDataArray* a);
00062
00063
00064 void ReadXMLData();
00065
00066 virtual void SetupEmptyOutput();
00067 virtual void GetOutputUpdateExtent(int& piece, int& numberOfPieces,
00068 int& ghostLevel)=0;
00069 virtual void SetupOutputTotals();
00070 virtual void SetupNextPiece();
00071 void SetupPieces(int numPieces);
00072 void DestroyPieces();
00073
00074 void SetupOutputInformation();
00075 void SetupOutputData();
00076 int ReadPiece(vtkXMLDataElement* ePiece);
00077 int ReadPieceData();
00078 int ReadCellArray(vtkIdType numberOfCells, vtkIdType totalNumberOfCells,
00079 vtkXMLDataElement* eCells, vtkCellArray* outCells);
00080
00081
00082 int ReadArrayForPoints(vtkXMLDataElement* da, vtkDataArray* outArray);
00083
00084
00085
00086 virtual vtkIdType GetNumberOfPointsInPiece(int piece);
00087 virtual vtkIdType GetNumberOfCellsInPiece(int piece)=0;
00088
00089
00090 int UpdatePiece;
00091 int UpdateNumberOfPieces;
00092 int UpdateGhostLevel;
00093
00094
00095 int StartPiece;
00096 int EndPiece;
00097 vtkIdType TotalNumberOfPoints;
00098 vtkIdType TotalNumberOfCells;
00099 vtkIdType StartPoint;
00100
00101
00102 vtkXMLDataElement** PointElements;
00103 vtkIdType* NumberOfPoints;
00104
00105 private:
00106 vtkXMLUnstructuredDataReader(const vtkXMLUnstructuredDataReader&);
00107 void operator=(const vtkXMLUnstructuredDataReader&);
00108 };
00109
00110 #endif