vtkDataWriter.h
Go to the documentation of this file.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