Main Page | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

dox/IO/vtkDataWriter.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkDataWriter.h,v $ 00005 Language: C++ 00006 00007 Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen 00008 All rights reserved. 00009 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00010 00011 This software is distributed WITHOUT ANY WARRANTY; without even 00012 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00013 PURPOSE. See the above copyright notice for more information. 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(); //dummy method to allow this class to be instantiated and delegated to 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&); // Not implemented. 00212 void operator=(const vtkDataWriter&); // Not implemented. 00213 }; 00214 00215 #endif 00216 00217