IO/vtkXMLStructuredDataWriter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00038 #ifndef __vtkXMLStructuredDataWriter_h
00039 #define __vtkXMLStructuredDataWriter_h
00040
00041 #include "vtkXMLWriter.h"
00042
00043 class vtkDataSet;
00044 class vtkPointData;
00045 class vtkExtentTranslator;
00046 class vtkDataArray;
00047 class vtkDataSetAttributes;
00048
00049 class VTK_IO_EXPORT vtkXMLStructuredDataWriter : public vtkXMLWriter
00050 {
00051 public:
00052 vtkTypeRevisionMacro(vtkXMLStructuredDataWriter,vtkXMLWriter);
00053 void PrintSelf(ostream& os, vtkIndent indent);
00054
00056
00058 vtkSetMacro(NumberOfPieces, int);
00059 vtkGetMacro(NumberOfPieces, int);
00061
00063
00066 vtkSetVector6Macro(WriteExtent, int);
00067 vtkGetVector6Macro(WriteExtent, int);
00069
00071
00072 virtual void SetExtentTranslator(vtkExtentTranslator*);
00073 vtkGetObjectMacro(ExtentTranslator, vtkExtentTranslator);
00075
00076 protected:
00077 vtkXMLStructuredDataWriter();
00078 ~vtkXMLStructuredDataWriter();
00079
00080
00081 virtual void WritePrimaryElementAttributes();
00082 virtual void WriteAppendedPiece(int index, vtkIndent indent);
00083 virtual void WriteAppendedPieceData(int index);
00084 virtual void WriteInlinePiece(int index, vtkIndent indent);
00085 virtual void GetInputExtent(int* extent)=0;
00086
00087
00088 int WriteData();
00089 void SetupExtentTranslator();
00090 virtual void WriteAppendedMode(vtkIndent indent);
00091 vtkDataArray* CreateExactExtent(vtkDataArray* array, int* inExtent,
00092 int* outExtent, int isPoint);
00093 virtual void WriteInlineMode(vtkIndent indent);
00094 unsigned int GetStartTuple(int* extent, int* increments,
00095 int i, int j, int k);
00096
00097
00098 vtkDataArray* CreateArrayForPoints(vtkDataArray* inArray);
00099 vtkDataArray* CreateArrayForCells(vtkDataArray* inArray);
00100
00101
00102 int WriteExtent[6];
00103
00104
00105 int NumberOfPieces;
00106
00107
00108 vtkExtentTranslator* ExtentTranslator;
00109
00110
00111 unsigned long** PointDataOffsets;
00112 unsigned long** CellDataOffsets;
00113
00114 private:
00115 vtkXMLStructuredDataWriter(const vtkXMLStructuredDataWriter&);
00116 void operator=(const vtkXMLStructuredDataWriter&);
00117 };
00118
00119 #endif