VTK
vtkDataWriter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkDataWriter.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
28 #ifndef __vtkDataWriter_h
29 #define __vtkDataWriter_h
30 
31 #include "vtkWriter.h"
32 
33 class vtkCellArray;
34 class vtkDataArray;
35 class vtkDataSet;
36 class vtkFieldData;
37 class vtkGraph;
38 class vtkPoints;
39 class vtkTable;
40 
42 {
43 public:
44  vtkTypeMacro(vtkDataWriter,vtkWriter);
45  void PrintSelf(ostream& os, vtkIndent indent);
46 
49  static vtkDataWriter *New();
50 
52 
53  vtkSetStringMacro(FileName);
54  vtkGetStringMacro(FileName);
56 
58 
59  vtkSetMacro(WriteToOutputString,int);
60  vtkGetMacro(WriteToOutputString,int);
61  vtkBooleanMacro(WriteToOutputString,int);
63 
65 
68  vtkGetMacro(OutputStringLength, int);
69  vtkGetStringMacro(OutputString);
70  unsigned char *GetBinaryOutputString()
71  {
72  return reinterpret_cast<unsigned char *>(this->OutputString);
73  }
75 
79  char *RegisterAndGetOutputString();
80 
82 
83  vtkSetStringMacro(Header);
84  vtkGetStringMacro(Header);
86 
88 
89  vtkSetClampMacro(FileType,int,VTK_ASCII,VTK_BINARY);
90  vtkGetMacro(FileType,int);
91  void SetFileTypeToASCII() {this->SetFileType(VTK_ASCII);};
92  void SetFileTypeToBinary() {this->SetFileType(VTK_BINARY);};
94 
96 
98  vtkSetStringMacro(ScalarsName);
99  vtkGetStringMacro(ScalarsName);
101 
103 
105  vtkSetStringMacro(VectorsName);
106  vtkGetStringMacro(VectorsName);
108 
110 
112  vtkSetStringMacro(TensorsName);
113  vtkGetStringMacro(TensorsName);
115 
117 
119  vtkSetStringMacro(NormalsName);
120  vtkGetStringMacro(NormalsName);
122 
124 
126  vtkSetStringMacro(TCoordsName);
127  vtkGetStringMacro(TCoordsName);
129 
131 
133  vtkSetStringMacro(GlobalIdsName);
134  vtkGetStringMacro(GlobalIdsName);
136 
138 
140  vtkSetStringMacro(PedigreeIdsName);
141  vtkGetStringMacro(PedigreeIdsName);
143 
145 
147  vtkSetStringMacro(LookupTableName);
148  vtkGetStringMacro(LookupTableName);
150 
152 
154  vtkSetStringMacro(FieldDataName);
155  vtkGetStringMacro(FieldDataName);
157 
159  virtual ostream *OpenVTKFile();
160 
162  int WriteHeader(ostream *fp);
163 
165  int WritePoints(ostream *fp, vtkPoints *p);
166 
168  int WriteCoordinates(ostream *fp, vtkDataArray *coords, int axes);
169 
171  int WriteCells(ostream *fp, vtkCellArray *cells, const char *label);
172 
175  int WriteCellData(ostream *fp, vtkDataSet *ds);
176 
179  int WritePointData(ostream *fp, vtkDataSet *ds);
180 
183  int WriteEdgeData(ostream *fp, vtkGraph *g);
184 
187  int WriteVertexData(ostream *fp, vtkGraph *g);
188 
191  int WriteRowData(ostream *fp, vtkTable *g);
192 
194  int WriteFieldData(ostream *fp, vtkFieldData *f);
195 
199  int WriteDataSetData(ostream *fp, vtkDataSet *ds);
200 
202  void CloseVTKFile(ostream *fp);
203 
204 
205 protected:
206  vtkDataWriter();
207  ~vtkDataWriter();
208 
212 
213  void WriteData(); //dummy method to allow this class to be instantiated and delegated to
214 
215  char *FileName;
216  char *Header;
217  int FileType;
218 
219  char *ScalarsName;
220  char *VectorsName;
221  char *TensorsName;
222  char *TCoordsName;
223  char *NormalsName;
228 
229  int WriteArray(ostream *fp, int dataType, vtkAbstractArray *data, const char *format,
230  int num, int numComp);
231  int WriteScalarData(ostream *fp, vtkDataArray *s, int num);
232  int WriteVectorData(ostream *fp, vtkDataArray *v, int num);
233  int WriteNormalData(ostream *fp, vtkDataArray *n, int num);
234  int WriteTCoordData(ostream *fp, vtkDataArray *tc, int num);
235  int WriteTensorData(ostream *fp, vtkDataArray *t, int num);
236  int WriteGlobalIdData(ostream *fp, vtkDataArray *g, int num);
237  int WritePedigreeIdData(ostream *fp, vtkAbstractArray *p, int num);
238 
239 private:
240  vtkDataWriter(const vtkDataWriter&); // Not implemented.
241  void operator=(const vtkDataWriter&); // Not implemented.
242 };
243 
244 #endif
char * FieldDataName
char * NormalsName
void SetFileTypeToASCII()
Definition: vtkDataWriter.h:91
abstract class to specify dataset behavior
Definition: vtkDataSet.h:58
Abstract superclass for all arrays.
helper class for objects that write vtk data files
Definition: vtkDataWriter.h:41
char * ScalarsName
char * LookupTableName
unsigned char * GetBinaryOutputString()
Definition: vtkDataWriter.h:70
char * OutputString
char * TensorsName
Base class for graph data types.
Definition: vtkGraph.h:287
abstract class to write data to file(s)
Definition: vtkWriter.h:43
#define VTK_ASCII
Definition: vtkDataReader.h:33
a simple class to control print indentation
Definition: vtkIndent.h:37
void SetFileTypeToBinary()
Definition: vtkDataWriter.h:92
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:53
char * GlobalIdsName
char * PedigreeIdsName
object to represent cell connectivity
Definition: vtkCellArray.h:48
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:66
char * TCoordsName
static vtkAlgorithm * New()
virtual void WriteData()=0
#define VTK_IO_EXPORT
char * VectorsName
void PrintSelf(ostream &os, vtkIndent indent)
represent and manipulate 3D points
Definition: vtkPoints.h:38
represent and manipulate fields of data
Definition: vtkFieldData.h:58
#define VTK_BINARY
Definition: vtkDataReader.h:34