VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/IO/Legacy/vtkDataWriter.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkDataWriter.h
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00028 #ifndef vtkDataWriter_h
00029 #define vtkDataWriter_h
00030 
00031 #include "vtkIOLegacyModule.h" // For export macro
00032 #include "vtkWriter.h"
00033 
00034 class vtkCellArray;
00035 class vtkDataArray;
00036 class vtkDataSet;
00037 class vtkFieldData;
00038 class vtkGraph;
00039 class vtkPoints;
00040 class vtkTable;
00041 
00042 class VTKIOLEGACY_EXPORT vtkDataWriter : public vtkWriter
00043 {
00044 public:
00045   vtkTypeMacro(vtkDataWriter,vtkWriter);
00046   void PrintSelf(ostream& os, vtkIndent indent);
00047 
00050   static vtkDataWriter *New();
00051 
00053 
00054   vtkSetStringMacro(FileName);
00055   vtkGetStringMacro(FileName);
00057 
00059 
00060   vtkSetMacro(WriteToOutputString,int);
00061   vtkGetMacro(WriteToOutputString,int);
00062   vtkBooleanMacro(WriteToOutputString,int);
00064 
00066 
00069   vtkGetMacro(OutputStringLength, int);
00070   vtkGetStringMacro(OutputString);
00071   unsigned char *GetBinaryOutputString()
00072     {
00073       return reinterpret_cast<unsigned char *>(this->OutputString);
00074     }
00076 
00079   vtkStdString GetOutputStdString();
00080 
00084   char *RegisterAndGetOutputString();
00085 
00087 
00088   vtkSetStringMacro(Header);
00089   vtkGetStringMacro(Header);
00091 
00093 
00094   vtkSetClampMacro(FileType,int,VTK_ASCII,VTK_BINARY);
00095   vtkGetMacro(FileType,int);
00096   void SetFileTypeToASCII() {this->SetFileType(VTK_ASCII);};
00097   void SetFileTypeToBinary() {this->SetFileType(VTK_BINARY);};
00099 
00101 
00103   vtkSetStringMacro(ScalarsName);
00104   vtkGetStringMacro(ScalarsName);
00106 
00108 
00110   vtkSetStringMacro(VectorsName);
00111   vtkGetStringMacro(VectorsName);
00113 
00115 
00117   vtkSetStringMacro(TensorsName);
00118   vtkGetStringMacro(TensorsName);
00120 
00122 
00124   vtkSetStringMacro(NormalsName);
00125   vtkGetStringMacro(NormalsName);
00127 
00129 
00131   vtkSetStringMacro(TCoordsName);
00132   vtkGetStringMacro(TCoordsName);
00134 
00136 
00138   vtkSetStringMacro(GlobalIdsName);
00139   vtkGetStringMacro(GlobalIdsName);
00141 
00143 
00145   vtkSetStringMacro(PedigreeIdsName);
00146   vtkGetStringMacro(PedigreeIdsName);
00148 
00150 
00152   vtkSetStringMacro(EdgeFlagsName);
00153   vtkGetStringMacro(EdgeFlagsName);
00155 
00157 
00159   vtkSetStringMacro(LookupTableName);
00160   vtkGetStringMacro(LookupTableName);
00162 
00164 
00166   vtkSetStringMacro(FieldDataName);
00167   vtkGetStringMacro(FieldDataName);
00169 
00171   virtual ostream *OpenVTKFile();
00172 
00174   int WriteHeader(ostream *fp);
00175 
00177   int WritePoints(ostream *fp, vtkPoints *p);
00178 
00180   int WriteCoordinates(ostream *fp, vtkDataArray *coords, int axes);
00181 
00183   int WriteCells(ostream *fp, vtkCellArray *cells, const char *label);
00184 
00187   int WriteCellData(ostream *fp, vtkDataSet *ds);
00188 
00191   int WritePointData(ostream *fp, vtkDataSet *ds);
00192 
00195   int WriteEdgeData(ostream *fp, vtkGraph *g);
00196 
00199   int WriteVertexData(ostream *fp, vtkGraph *g);
00200 
00203   int WriteRowData(ostream *fp, vtkTable *g);
00204 
00206   int WriteFieldData(ostream *fp, vtkFieldData *f);
00207 
00211   int WriteDataSetData(ostream *fp, vtkDataSet *ds);
00212 
00214   void CloseVTKFile(ostream *fp);
00215 
00216 
00217 protected:
00218   vtkDataWriter();
00219   ~vtkDataWriter();
00220 
00221   int WriteToOutputString;
00222   char *OutputString;
00223   int OutputStringLength;
00224 
00225   void WriteData(); //dummy method to allow this class to be instantiated and delegated to
00226 
00227   char *FileName;
00228   char *Header;
00229   int FileType;
00230 
00231   char *ScalarsName;
00232   char *VectorsName;
00233   char *TensorsName;
00234   char *TCoordsName;
00235   char *NormalsName;
00236   char *LookupTableName;
00237   char *FieldDataName;
00238   char* GlobalIdsName;
00239   char* PedigreeIdsName;
00240   char* EdgeFlagsName;
00241 
00242   int WriteArray(ostream *fp, int dataType, vtkAbstractArray *data, const char *format,
00243                  int num, int numComp);
00244   int WriteScalarData(ostream *fp, vtkDataArray *s, int num);
00245   int WriteVectorData(ostream *fp, vtkDataArray *v, int num);
00246   int WriteNormalData(ostream *fp, vtkDataArray *n, int num);
00247   int WriteTCoordData(ostream *fp, vtkDataArray *tc, int num);
00248   int WriteTensorData(ostream *fp, vtkDataArray *t, int num);
00249   int WriteGlobalIdData(ostream *fp, vtkDataArray *g, int num);
00250   int WritePedigreeIdData(ostream *fp, vtkAbstractArray *p, int num);
00251   int WriteEdgeFlagsData(ostream *fp, vtkDataArray *edgeFlags, int num);
00252 
00253 private:
00254   vtkDataWriter(const vtkDataWriter&);  // Not implemented.
00255   void operator=(const vtkDataWriter&);  // Not implemented.
00256 };
00257 
00258 #endif