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