VTK
vtkXdmfWriter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkXdmfWriter.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 =========================================================================*/
15 
28 #ifndef _vtkXdmfWriter_h
29 #define _vtkXdmfWriter_h
30 
31 #include "vtkIOXdmf2Module.h" // For export macro
32 
33 #include "vtkDataObjectAlgorithm.h"
34 
35 class vtkExecutive;
36 
38 class vtkDataArray;
39 class vtkDataSet;
40 class vtkDataObject;
41 class vtkFieldData;
42 class vtkInformation;
44 class vtkXdmfWriterDomainMemoryHandler;
45 
46 namespace xdmf2
47 {
48 class XdmfArray;
49 class XdmfDOM;
50 class XdmfGrid;
51 }
52 
54 {
55 public:
56  static vtkXdmfWriter *New();
58  void PrintSelf(ostream& os, vtkIndent indent);
59 
61  virtual void SetInputData(vtkDataObject* dobj);
62 
64 
65  vtkSetStringMacro(FileName);
66  vtkGetStringMacro(FileName);
68 
70 
72  vtkSetStringMacro(HeavyDataFileName);
73  vtkGetStringMacro(HeavyDataFileName);
75 
77 
79  vtkSetStringMacro(HeavyDataGroupName);
80  vtkGetStringMacro(HeavyDataGroupName);
82 
86  virtual int Write();
87 
89 
91  vtkSetMacro(LightDataLimit, int);
92  vtkGetMacro(LightDataLimit, int);
94 
96 
98  vtkSetMacro(WriteAllTimeSteps, int);
99  vtkGetMacro(WriteAllTimeSteps, int);
100  vtkBooleanMacro(WriteAllTimeSteps, int);
102 
104 
106  vtkSetMacro(Piece, int);
107  vtkSetMacro(NumberOfPieces, int);
109 
110  //TODO: control choice of heavy data format (xml, hdf5, sql, raw)
111 
112  //TODO: These controls are available in vtkXdmfWriter, but are not used here.
113  //GridsOnly
114  //Append to Domain
115 
116 protected:
117  vtkXdmfWriter();
118  ~vtkXdmfWriter();
119 
120  //Choose composite executive by default for time.
121  virtual vtkExecutive* CreateDefaultExecutive();
122 
123  //Can take any one data object
124  virtual int FillInputPortInformation(int port, vtkInformation *info);
125 
126  //Overridden to ...
127  virtual int RequestInformation(vtkInformation*,
130  //Overridden to ...
131  virtual int RequestUpdateExtent(vtkInformation*,
134  //Overridden to ...
135  virtual int RequestData(vtkInformation*,
138 
139  //These do the work: recursively parse down input's structure all the way to arrays,
140  //use XDMF lib to dump everything to file.
141 
142  virtual int CreateTopology(vtkDataSet *ds, xdmf2::XdmfGrid *grid, vtkIdType PDims[3], vtkIdType CDims[3], vtkIdType &PRank, vtkIdType &CRank, void *staticdata);
143  virtual int CreateGeometry(vtkDataSet *ds, xdmf2::XdmfGrid *grid, void *staticdata);
144 
145  virtual int WriteDataSet(vtkDataObject *dobj, xdmf2::XdmfGrid *grid);
146  virtual int WriteCompositeDataSet(vtkCompositeDataSet *dobj, xdmf2::XdmfGrid *grid);
147  virtual int WriteAtomicDataSet(vtkDataObject *dobj, xdmf2::XdmfGrid *grid);
148  virtual int WriteArrays(vtkFieldData* dsa, xdmf2::XdmfGrid *grid, int association,
149  vtkIdType rank, vtkIdType *dims, const char *name);
150  virtual void ConvertVToXArray(vtkDataArray *vda, xdmf2::XdmfArray *xda,
151  vtkIdType rank, vtkIdType *dims,
152  int AllocStrategy, const char *heavyprefix);
153 
154  char *FileName;
157 
159 
163 
164  int Piece;
166 
167  xdmf2::XdmfDOM *DOM;
168  xdmf2::XdmfGrid *TopTemporalGrid;
169 
170  vtkXdmfWriterDomainMemoryHandler *DomainMemoryHandler;
171 
172 private:
173  vtkXdmfWriter(const vtkXdmfWriter&); // Not implemented
174  void operator=(const vtkXdmfWriter&); // Not implemented
175 };
176 
177 #endif /* _vtkXdmfWriter_h */
Store vtkAlgorithm input/output information.
char * HeavyDataGroupName
abstract class to specify dataset behavior
Definition: vtkDataSet.h:59
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:83
#define VTKIOXDMF2_EXPORT
int vtkIdType
Definition: vtkType.h:281
Superclass for all pipeline executives in VTK.
Definition: vtkExecutive.h:51
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:94
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:632
abstract superclass for composite (multi-block or AMR) datasets
GLuint const GLchar * name
Definition: vtkgl.h:11983
write eXtensible Data Model and Format files
Definition: vtkXdmfWriter.h:53
a simple class to control print indentation
Definition: vtkIndent.h:38
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:53
xdmf2::XdmfGrid * TopTemporalGrid
#define vtkGetStringMacro(name)
Definition: vtkSetGet.h:120
vtkXdmfWriterDomainMemoryHandler * DomainMemoryHandler
Superclass for algorithms that produce only data object as output.
Store zero or more vtkInformation instances.
#define vtkBooleanMacro(name, type)
Definition: vtkSetGet.h:234
xdmf2::XdmfDOM * DOM
general representation of visualization data
Definition: vtkDataObject.h:64
char * HeavyDataFileName
represent and manipulate fields of data
Definition: vtkFieldData.h:55
#define vtkSetMacro(name, type)
Definition: vtkSetGet.h:69