IO/vtkXMLStructuredDataWriter.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00022 #ifndef __vtkXMLStructuredDataWriter_h
00023 #define __vtkXMLStructuredDataWriter_h
00024
00025 #include "vtkXMLWriter.h"
00026
00027 class vtkDataSet;
00028 class vtkPointData;
00029 class vtkExtentTranslator;
00030 class vtkDataArray;
00031 class vtkDataSetAttributes;
00032
00033 class VTK_IO_EXPORT vtkXMLStructuredDataWriter : public vtkXMLWriter
00034 {
00035 public:
00036 vtkTypeRevisionMacro(vtkXMLStructuredDataWriter,vtkXMLWriter);
00037 void PrintSelf(ostream& os, vtkIndent indent);
00038
00040
00042 vtkSetMacro(NumberOfPieces, int);
00043 vtkGetMacro(NumberOfPieces, int);
00045
00047
00050 vtkSetVector6Macro(WriteExtent, int);
00051 vtkGetVector6Macro(WriteExtent, int);
00053
00055
00056 virtual void SetExtentTranslator(vtkExtentTranslator*);
00057 vtkGetObjectMacro(ExtentTranslator, vtkExtentTranslator);
00059
00060 protected:
00061 vtkXMLStructuredDataWriter();
00062 ~vtkXMLStructuredDataWriter();
00063
00064
00065 virtual void WritePrimaryElementAttributes();
00066 virtual void WriteAppendedPiece(int index, vtkIndent indent);
00067 virtual void WriteAppendedPieceData(int index);
00068 virtual void WriteInlinePiece(int index, vtkIndent indent);
00069 virtual void GetInputExtent(int* extent)=0;
00070
00071
00072 int WriteData();
00073 void SetupExtentTranslator();
00074 virtual int WriteAppendedMode(vtkIndent indent);
00075 vtkDataArray* CreateExactExtent(vtkDataArray* array, int* inExtent,
00076 int* outExtent, int isPoint);
00077 virtual int WriteInlineMode(vtkIndent indent);
00078 unsigned int GetStartTuple(int* extent, int* increments,
00079 int i, int j, int k);
00080 void CalculatePieceFractions(float* fractions);
00081
00082
00083 vtkDataArray* CreateArrayForPoints(vtkDataArray* inArray);
00084 vtkDataArray* CreateArrayForCells(vtkDataArray* inArray);
00085
00086
00087 int WriteExtent[6];
00088
00089
00090 int NumberOfPieces;
00091
00092
00093 vtkExtentTranslator* ExtentTranslator;
00094
00095
00096 unsigned long** PointDataOffsets;
00097 unsigned long** CellDataOffsets;
00098
00099 private:
00100 vtkXMLStructuredDataWriter(const vtkXMLStructuredDataWriter&);
00101 void operator=(const vtkXMLStructuredDataWriter&);
00102 };
00103
00104 #endif