00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00026
#ifndef __vtkXMLUnstructuredDataWriter_h
00027
#define __vtkXMLUnstructuredDataWriter_h
00028
00029
#include "vtkXMLWriter.h"
00030
00031
class vtkPointSet;
00032
class vtkCellArray;
00033
class vtkDataArray;
00034
class vtkIdTypeArray;
00035
00036 class VTK_IO_EXPORT vtkXMLUnstructuredDataWriter :
public vtkXMLWriter
00037 {
00038
public:
00039 vtkTypeRevisionMacro(vtkXMLUnstructuredDataWriter,
vtkXMLWriter);
00040
void PrintSelf(ostream& os,
vtkIndent indent);
00041
00043
00045 vtkSetMacro(NumberOfPieces,
int);
00046 vtkGetMacro(NumberOfPieces,
int);
00048
00050
00051 vtkSetMacro(WritePiece,
int);
00052 vtkGetMacro(WritePiece,
int);
00054
00056
00057 vtkSetMacro(GhostLevel,
int);
00058 vtkGetMacro(GhostLevel,
int);
00060
00061
protected:
00062 vtkXMLUnstructuredDataWriter();
00063 ~vtkXMLUnstructuredDataWriter();
00064
00065
vtkPointSet* GetInputAsPointSet();
00066
virtual const char*
GetDataSetName()=0;
00067
virtual void SetInputUpdateExtent(
int piece,
int numPieces,
00068
int ghostLevel)=0;
00069
00070
00071
int WriteData();
00072
00073
virtual void WriteInlineMode(
vtkIndent indent);
00074
virtual void WriteInlinePieceAttributes();
00075
virtual void WriteInlinePiece(
vtkIndent indent);
00076
00077
virtual void WriteAppendedMode(
vtkIndent indent);
00078
virtual void WriteAppendedPieceAttributes(
int index);
00079
virtual void WriteAppendedPiece(
int index,
vtkIndent indent);
00080
virtual void WriteAppendedPieceData(
int index);
00081
00082
void WriteCellsInline(
const char* name,
vtkCellArray* cells,
00083
vtkDataArray* types,
vtkIndent indent);
00084
unsigned long* WriteCellsAppended(
const char* name,
vtkDataArray* types,
00085
vtkIndent indent);
00086
void WriteCellsAppendedData(
vtkCellArray* cells,
vtkDataArray* types,
00087
unsigned long* positions);
00088
void ConvertCells(
vtkCellArray* cells);
00089
00090
00091 int NumberOfPieces;
00092
00093
00094 int WritePiece;
00095
00096
00097 int GhostLevel;
00098
00099
00100 unsigned long* PointsPositions;
00101 unsigned long* NumberOfPointsPositions;
00102 unsigned long** PointDataPositions;
00103 unsigned long** CellDataPositions;
00104
00105
00106 vtkIdTypeArray* CellPoints;
00107 vtkIdTypeArray* CellOffsets;
00108
00109
private:
00110 vtkXMLUnstructuredDataWriter(
const vtkXMLUnstructuredDataWriter&);
00111
void operator=(
const vtkXMLUnstructuredDataWriter&);
00112 };
00113
00114
#endif