00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00032
#ifndef __vtkDataWriter_h
00033
#define __vtkDataWriter_h
00034
00035
#include "vtkWriter.h"
00036
00037
class vtkDataSet;
00038
class vtkPoints;
00039
class vtkCellArray;
00040
class vtkDataArray;
00041
class vtkFieldData;
00042
00043 class VTK_IO_EXPORT vtkDataWriter :
public vtkWriter
00044 {
00045
public:
00046 vtkTypeRevisionMacro(vtkDataWriter,
vtkWriter);
00047
void PrintSelf(ostream& os,
vtkIndent indent);
00048
00051
static vtkDataWriter *
New();
00052
00054
00055 vtkSetStringMacro(FileName);
00056 vtkGetStringMacro(FileName);
00058
00060
00061 vtkSetMacro(WriteToOutputString,
int);
00062 vtkGetMacro(WriteToOutputString,
int);
00063 vtkBooleanMacro(WriteToOutputString,
int);
00065
00067
00070 vtkGetMacro(OutputStringLength,
int);
00071 vtkGetStringMacro(OutputString);
00072 unsigned char *GetBinaryOutputString() {
00073
return (
unsigned char *)this->OutputString;};
00075
00079
char *RegisterAndGetOutputString();
00080
00082
00083 vtkSetStringMacro(Header);
00084 vtkGetStringMacro(Header);
00086
00088
00089 vtkSetClampMacro(FileType,
int,VTK_ASCII,VTK_BINARY);
00090 vtkGetMacro(FileType,
int);
00091 void SetFileTypeToASCII() {this->SetFileType(
VTK_ASCII);};
00092 void SetFileTypeToBinary() {this->SetFileType(
VTK_BINARY);};
00094
00096
00098 vtkSetStringMacro(ScalarsName);
00099 vtkGetStringMacro(ScalarsName);
00101
00103
00105 vtkSetStringMacro(VectorsName);
00106 vtkGetStringMacro(VectorsName);
00108
00110
00112 vtkSetStringMacro(TensorsName);
00113 vtkGetStringMacro(TensorsName);
00115
00117
00119 vtkSetStringMacro(NormalsName);
00120 vtkGetStringMacro(NormalsName);
00122
00124
00126 vtkSetStringMacro(TCoordsName);
00127 vtkGetStringMacro(TCoordsName);
00129
00131
00133 vtkSetStringMacro(LookupTableName);
00134 vtkGetStringMacro(LookupTableName);
00136
00138
00140 vtkSetStringMacro(FieldDataName);
00141 vtkGetStringMacro(FieldDataName);
00143
00145
virtual ostream *OpenVTKFile();
00146
00148
int WriteHeader(ostream *fp);
00149
00151
int WritePoints(ostream *fp,
vtkPoints *p);
00152
00154
int WriteCoordinates(ostream *fp,
vtkDataArray *coords,
int axes);
00155
00157
int WriteCells(ostream *fp,
vtkCellArray *cells,
const char *label);
00158
00161
int WriteCellData(ostream *fp,
vtkDataSet *ds);
00162
00165
int WritePointData(ostream *fp,
vtkDataSet *ds);
00166
00168
int WriteFieldData(ostream *fp,
vtkFieldData *f);
00169
00173
int WriteDataSetData(ostream *fp,
vtkDataSet *ds);
00174
00176
void CloseVTKFile(ostream *fp);
00177
00178
00179
protected:
00180 vtkDataWriter();
00181 ~vtkDataWriter();
00182
00183 int WriteToOutputString;
00184 char *OutputString;
00185 int OutputStringLength;
00186 int OutputStringAllocatedLength;
00187
00188
void WriteData();
00189
00190 char *FileName;
00191 char *Header;
00192 int FileType;
00193
00194 char *ScalarsName;
00195 char *VectorsName;
00196 char *TensorsName;
00197 char *TCoordsName;
00198 char *NormalsName;
00199 char *LookupTableName;
00200 char *FieldDataName;
00201
00202
int WriteArray(ostream *fp,
int dataType,
vtkDataArray *data,
const char *format,
00203
int num,
int numComp);
00204
int WriteScalarData(ostream *fp,
vtkDataArray *s,
int num);
00205
int WriteVectorData(ostream *fp,
vtkDataArray *v,
int num);
00206
int WriteNormalData(ostream *fp,
vtkDataArray *n,
int num);
00207
int WriteTCoordData(ostream *fp,
vtkDataArray *tc,
int num);
00208
int WriteTensorData(ostream *fp,
vtkDataArray *t,
int num);
00209
00210
private:
00211 vtkDataWriter(
const vtkDataWriter&);
00212
void operator=(
const vtkDataWriter&);
00213 };
00214
00215
#endif
00216
00217