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