VTK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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 "vtkIOLegacyModule.h" // For export macro
32 #include "vtkWriter.h"
33 
34 class vtkCellArray;
35 class vtkDataArray;
36 class vtkDataSet;
37 class vtkFieldData;
38 class vtkGraph;
39 class vtkPoints;
40 class vtkTable;
41 
43 {
44 public:
46  void PrintSelf(ostream& os, vtkIndent indent);
47 
50  static vtkDataWriter *New();
51 
53 
54  vtkSetStringMacro(FileName);
55  vtkGetStringMacro(FileName);
57 
59 
60  vtkSetMacro(WriteToOutputString,int);
61  vtkGetMacro(WriteToOutputString,int);
62  vtkBooleanMacro(WriteToOutputString,int);
64 
66 
69  vtkGetMacro(OutputStringLength, int);
70  vtkGetStringMacro(OutputString);
71  unsigned char *GetBinaryOutputString()
72  {
73  return reinterpret_cast<unsigned char *>(this->OutputString);
74  }
76 
79  vtkStdString GetOutputStdString();
80 
84  char *RegisterAndGetOutputString();
85 
87 
88  vtkSetStringMacro(Header);
89  vtkGetStringMacro(Header);
91 
93 
95  vtkGetMacro(FileType,int);
96  void SetFileTypeToASCII() {this->SetFileType(VTK_ASCII);};
97  void SetFileTypeToBinary() {this->SetFileType(VTK_BINARY);};
99 
101 
103  vtkSetStringMacro(ScalarsName);
104  vtkGetStringMacro(ScalarsName);
106 
108 
110  vtkSetStringMacro(VectorsName);
111  vtkGetStringMacro(VectorsName);
113 
115 
117  vtkSetStringMacro(TensorsName);
118  vtkGetStringMacro(TensorsName);
120 
122 
124  vtkSetStringMacro(NormalsName);
125  vtkGetStringMacro(NormalsName);
127 
129 
131  vtkSetStringMacro(TCoordsName);
132  vtkGetStringMacro(TCoordsName);
134 
136 
138  vtkSetStringMacro(GlobalIdsName);
139  vtkGetStringMacro(GlobalIdsName);
141 
143 
145  vtkSetStringMacro(PedigreeIdsName);
146  vtkGetStringMacro(PedigreeIdsName);
148 
150 
152  vtkSetStringMacro(LookupTableName);
153  vtkGetStringMacro(LookupTableName);
155 
157 
159  vtkSetStringMacro(FieldDataName);
160  vtkGetStringMacro(FieldDataName);
162 
164  virtual ostream *OpenVTKFile();
165 
167  int WriteHeader(ostream *fp);
168 
170  int WritePoints(ostream *fp, vtkPoints *p);
171 
173  int WriteCoordinates(ostream *fp, vtkDataArray *coords, int axes);
174 
176  int WriteCells(ostream *fp, vtkCellArray *cells, const char *label);
177 
180  int WriteCellData(ostream *fp, vtkDataSet *ds);
181 
184  int WritePointData(ostream *fp, vtkDataSet *ds);
185 
188  int WriteEdgeData(ostream *fp, vtkGraph *g);
189 
192  int WriteVertexData(ostream *fp, vtkGraph *g);
193 
196  int WriteRowData(ostream *fp, vtkTable *g);
197 
199  int WriteFieldData(ostream *fp, vtkFieldData *f);
200 
204  int WriteDataSetData(ostream *fp, vtkDataSet *ds);
205 
207  void CloseVTKFile(ostream *fp);
208 
209 
210 protected:
211  vtkDataWriter();
212  ~vtkDataWriter();
213 
217 
218  void WriteData(); //dummy method to allow this class to be instantiated and delegated to
219 
220  char *FileName;
221  char *Header;
222  int FileType;
223 
224  char *ScalarsName;
225  char *VectorsName;
226  char *TensorsName;
227  char *TCoordsName;
228  char *NormalsName;
233 
234  int WriteArray(ostream *fp, int dataType, vtkAbstractArray *data, const char *format,
235  int num, int numComp);
236  int WriteScalarData(ostream *fp, vtkDataArray *s, int num);
237  int WriteVectorData(ostream *fp, vtkDataArray *v, int num);
238  int WriteNormalData(ostream *fp, vtkDataArray *n, int num);
239  int WriteTCoordData(ostream *fp, vtkDataArray *tc, int num);
240  int WriteTensorData(ostream *fp, vtkDataArray *t, int num);
241  int WriteGlobalIdData(ostream *fp, vtkDataArray *g, int num);
242  int WritePedigreeIdData(ostream *fp, vtkAbstractArray *p, int num);
243 
244 private:
245  vtkDataWriter(const vtkDataWriter&); // Not implemented.
246  void operator=(const vtkDataWriter&); // Not implemented.
247 };
248 
249 #endif
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: vtkgl.h:11339
char * FieldDataName
Wrapper around std::string to keep symbols short.
Definition: vtkStdString.h:46
GLclampf f
Definition: vtkgl.h:14181
const GLdouble * v
Definition: vtkgl.h:11595
char * NormalsName
void SetFileTypeToASCII()
Definition: vtkDataWriter.h:96
abstract class to specify dataset behavior
Definition: vtkDataSet.h:60
Abstract superclass for all arrays.
helper class for objects that write vtk data files
Definition: vtkDataWriter.h:42
char * ScalarsName
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:83
char * LookupTableName
unsigned char * GetBinaryOutputString()
Definition: vtkDataWriter.h:71
char * OutputString
#define vtkSetClampMacro(name, type, min, max)
Definition: vtkSetGet.h:133
GLdouble GLdouble t
Definition: vtkgl.h:11602
char * TensorsName
GLuint coords
Definition: vtkgl.h:13928
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:94
#define VTK_ASCII
Definition: vtkWriter.h:41
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:619
#define VTKIOLEGACY_EXPORT
GLuint GLuint num
Definition: vtkgl.h:16907
Base class for graph data types.
Definition: vtkGraph.h:288
abstract class to write data to file(s)
Definition: vtkWriter.h:44
a simple class to control print indentation
Definition: vtkIndent.h:38
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
Definition: vtkgl.h:11316
void SetFileTypeToBinary()
Definition: vtkDataWriter.h:97
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:53
#define VTK_BINARY
Definition: vtkWriter.h:42
char * GlobalIdsName
#define vtkGetStringMacro(name)
Definition: vtkSetGet.h:120
char * PedigreeIdsName
object to represent cell connectivity
Definition: vtkCellArray.h:49
A table, which contains similar-typed columns of data.
Definition: vtkTable.h:67
const GLfloat * tc
Definition: vtkgl.h:15740
char * TCoordsName
GLboolean GLboolean g
Definition: vtkgl.h:12312
GLdouble s
Definition: vtkgl.h:11594
GLclampd n
Definition: vtkgl.h:14370
static vtkAlgorithm * New()
#define vtkBooleanMacro(name, type)
Definition: vtkSetGet.h:234
virtual void WriteData()=0
char * VectorsName
void PrintSelf(ostream &os, vtkIndent indent)
represent and manipulate 3D points
Definition: vtkPoints.h:39
represent and manipulate fields of data
Definition: vtkFieldData.h:55
GLfloat GLfloat p
Definition: vtkgl.h:15717
#define vtkSetMacro(name, type)
Definition: vtkSetGet.h:69