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 #include <string> // Needed for private members
36 #include <vector> //
37 
38 class vtkExecutive;
39 
41 class vtkDataArray;
42 class vtkDataSet;
43 class vtkDataObject;
44 class vtkFieldData;
45 class vtkInformation;
47 class vtkXdmfWriterDomainMemoryHandler;
48 
49 namespace xdmf2
50 {
51 class XdmfArray;
52 class XdmfDOM;
53 class XdmfElement;
54 class XdmfGrid;
55 class XdmfGeometry;
56 class XdmfTopology;
57 }
58 
60 {
61 public:
62  static vtkXdmfWriter *New();
64  void PrintSelf(ostream& os, vtkIndent indent);
65 
67  virtual void SetInputData(vtkDataObject* dobj);
68 
70 
71  vtkSetStringMacro(FileName);
72  vtkGetStringMacro(FileName);
74 
76 
78  vtkSetStringMacro(HeavyDataFileName);
79  vtkGetStringMacro(HeavyDataFileName);
81 
83 
85  vtkSetStringMacro(HeavyDataGroupName);
86  vtkGetStringMacro(HeavyDataGroupName);
88 
92  virtual int Write();
93 
95 
98  vtkSetMacro(LightDataLimit, int);
99  vtkGetMacro(LightDataLimit, int);
101 
103 
105  vtkSetMacro(WriteAllTimeSteps, int);
106  vtkGetMacro(WriteAllTimeSteps, int);
107  vtkBooleanMacro(WriteAllTimeSteps, int);
109 
111 
115  vtkSetMacro(MeshStaticOverTime, bool);
116  vtkGetMacro(MeshStaticOverTime, bool);
117  vtkBooleanMacro(MeshStaticOverTime, bool);
119 
121 
123  vtkSetMacro(Piece, int);
124  vtkSetMacro(NumberOfPieces, int);
126 
127  //TODO: control choice of heavy data format (xml, hdf5, sql, raw)
128 
129  //TODO: These controls are available in vtkXdmfWriter, but are not used here.
130  //GridsOnly
131  //Append to Domain
132 
133 protected:
136 
137  //Choose composite executive by default for time.
139 
140  //Can take any one data object
142 
143  //Overridden to ...
147  //Overridden to ...
151  //Overridden to ...
155 
156  //These do the work: recursively parse down input's structure all the way to arrays,
157  //use XDMF lib to dump everything to file.
158 
159  virtual int CreateTopology(vtkDataSet *ds, xdmf2::XdmfGrid *grid, vtkIdType PDims[3], vtkIdType CDims[3], vtkIdType &PRank, vtkIdType &CRank, void *staticdata);
160  virtual int CreateGeometry(vtkDataSet *ds, xdmf2::XdmfGrid *grid, void *staticdata);
161 
162  virtual int WriteDataSet(vtkDataObject *dobj, xdmf2::XdmfGrid *grid);
163  virtual int WriteCompositeDataSet(vtkCompositeDataSet *dobj, xdmf2::XdmfGrid *grid);
164  virtual int WriteAtomicDataSet(vtkDataObject *dobj, xdmf2::XdmfGrid *grid);
165  virtual int WriteArrays(vtkFieldData* dsa, xdmf2::XdmfGrid *grid, int association,
166  vtkIdType rank, vtkIdType *dims, const char *name);
167  virtual void ConvertVToXArray(vtkDataArray *vda, xdmf2::XdmfArray *xda,
168  vtkIdType rank, vtkIdType *dims,
169  int AllocStrategy, const char *heavyprefix);
170 
171  virtual void SetupDataArrayXML(xdmf2::XdmfElement*, xdmf2::XdmfArray*) const;
172 
173  char *FileName;
178 
180 
183  double CurrentTime;
187 
188  int Piece;
190 
192 
193  xdmf2::XdmfDOM *DOM;
194  xdmf2::XdmfGrid *TopTemporalGrid;
195 
196  vtkXdmfWriterDomainMemoryHandler *DomainMemoryHandler;
197 
198  std::vector<xdmf2::XdmfTopology*> TopologyAtT0;
199  std::vector<xdmf2::XdmfGeometry*> GeometryAtT0;
200 
201 private:
202  vtkXdmfWriter(const vtkXdmfWriter&); // Not implemented
203  void operator=(const vtkXdmfWriter&); // Not implemented
204 };
205 
206 #endif /* _vtkXdmfWriter_h */
vtkIOXdmf2Module.h
vtkXdmfWriter::TopologyAtT0
std::vector< xdmf2::XdmfTopology * > TopologyAtT0
Definition: vtkXdmfWriter.h:198
VTKIOXDMF2_EXPORT
#define VTKIOXDMF2_EXPORT
Definition: vtkIOXdmf2Module.h:15
vtkIdType
int vtkIdType
Definition: vtkType.h:275
vtkXdmfWriter::CreateGeometry
virtual int CreateGeometry(vtkDataSet *ds, xdmf2::XdmfGrid *grid, void *staticdata)
vtkXdmfWriter::CreateDefaultExecutive
virtual vtkExecutive * CreateDefaultExecutive()
xdmf2
Definition: vtkXdmfDataArray.h:33
vtkXdmfWriter::MeshStaticOverTime
bool MeshStaticOverTime
Definition: vtkXdmfWriter.h:191
vtkInformationVector
Store zero or more vtkInformation instances.
Definition: vtkInformationVector.h:41
vtkDataObjectAlgorithm
Superclass for algorithms that produce only data object as output.
Definition: vtkDataObjectAlgorithm.h:43
vtkXdmfWriter::NumberOfPieces
int NumberOfPieces
Definition: vtkXdmfWriter.h:189
vtkTypeMacro
#define vtkTypeMacro(thisClass, superclass)
Definition: vtkSetGet.h:642
vtkXdmfWriter::Piece
int Piece
Definition: vtkXdmfWriter.h:188
vtkDataArray
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:55
vtkXdmfWriter::CurrentTimeIndex
int CurrentTimeIndex
Definition: vtkXdmfWriter.h:184
vtkXdmfWriter::New
static vtkXdmfWriter * New()
vtkXdmfWriter::RequestInformation
virtual int RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkCompositeDataSet
abstract superclass for composite (multi-block or AMR) datasets
Definition: vtkCompositeDataSet.h:51
vtkXdmfWriter::WriteAllTimeSteps
int WriteAllTimeSteps
Definition: vtkXdmfWriter.h:181
vtkXdmfWriter::DomainMemoryHandler
vtkXdmfWriterDomainMemoryHandler * DomainMemoryHandler
Definition: vtkXdmfWriter.h:196
vtkXdmfWriter::FillInputPortInformation
virtual int FillInputPortInformation(int port, vtkInformation *info)
vtkFieldData
represent and manipulate fields of data
Definition: vtkFieldData.h:56
vtkXdmfWriter::RequestData
virtual int RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkXdmfWriter::CurrentTime
double CurrentTime
Definition: vtkXdmfWriter.h:183
vtkX3D::port
@ port
Definition: vtkX3D.h:447
vtkgl::name
GLuint const GLchar * name
Definition: vtkgl.h:11983
vtkExecutive
Superclass for all pipeline executives in VTK.
Definition: vtkExecutive.h:52
vtkXdmfWriter::WorkingDirectory
std::string WorkingDirectory
Definition: vtkXdmfWriter.h:176
vtkXdmfWriter::TopTemporalGrid
xdmf2::XdmfGrid * TopTemporalGrid
Definition: vtkXdmfWriter.h:194
vtkXdmfWriter::vtkXdmfWriter
vtkXdmfWriter()
vtkXdmfWriter::WriteDataSet
virtual int WriteDataSet(vtkDataObject *dobj, xdmf2::XdmfGrid *grid)
vtkXdmfWriter::PrintSelf
void PrintSelf(ostream &os, vtkIndent indent)
vtkXdmfWriter::CurrentBlockIndex
int CurrentBlockIndex
Definition: vtkXdmfWriter.h:185
vtkIndent
a simple class to control print indentation
Definition: vtkIndent.h:39
vtkXdmfWriter::UnlabelledDataArrayId
int UnlabelledDataArrayId
Definition: vtkXdmfWriter.h:186
vtkSetStringMacro
#define vtkSetStringMacro(name)
Definition: vtkSetGet.h:104
vtkXdmfWriter::Write
virtual int Write()
vtkXdmfWriter::CreateTopology
virtual int CreateTopology(vtkDataSet *ds, xdmf2::XdmfGrid *grid, vtkIdType PDims[3], vtkIdType CDims[3], vtkIdType &PRank, vtkIdType &CRank, void *staticdata)
vtkXdmfWriter::SetInputData
virtual void SetInputData(vtkDataObject *dobj)
vtkXdmfWriter
write eXtensible Data Model and Format files
Definition: vtkXdmfWriter.h:60
vtkGetMacro
#define vtkGetMacro(name, type)
Definition: vtkSetGet.h:93
vtkGetStringMacro
vtkGetStringMacro(ExtensionsString)
vtkDataSet
abstract class to specify dataset behavior
Definition: vtkDataSet.h:62
vtkBooleanMacro
vtkBooleanMacro(IgnoreDriverBugs, bool)
vtkInformation
Store vtkAlgorithm input/output information.
Definition: vtkInformation.h:86
vtkXdmfWriter::GeometryAtT0
std::vector< xdmf2::XdmfGeometry * > GeometryAtT0
Definition: vtkXdmfWriter.h:199
vtkSetMacro
vtkSetMacro(IgnoreDriverBugs, bool)
vtkX3D::info
@ info
Definition: vtkX3D.h:376
vtkXdmfWriter::BaseFileName
std::string BaseFileName
Definition: vtkXdmfWriter.h:177
vtkXdmfWriter::~vtkXdmfWriter
~vtkXdmfWriter()
vtkXdmfWriter::NumberOfTimeSteps
int NumberOfTimeSteps
Definition: vtkXdmfWriter.h:182
vtkXdmfWriter::FileName
char * FileName
Definition: vtkXdmfWriter.h:173
vtkXdmfWriter::DOM
xdmf2::XdmfDOM * DOM
Definition: vtkXdmfWriter.h:193
vtkDataObjectAlgorithm.h
vtkXdmfWriter::ConvertVToXArray
virtual void ConvertVToXArray(vtkDataArray *vda, xdmf2::XdmfArray *xda, vtkIdType rank, vtkIdType *dims, int AllocStrategy, const char *heavyprefix)
vtkXdmfWriter::RequestUpdateExtent
virtual int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)
vtkDataObject
general representation of visualization data
Definition: vtkDataObject.h:65
vtkXdmfWriter::WriteArrays
virtual int WriteArrays(vtkFieldData *dsa, xdmf2::XdmfGrid *grid, int association, vtkIdType rank, vtkIdType *dims, const char *name)
vtkXdmfWriter::WriteCompositeDataSet
virtual int WriteCompositeDataSet(vtkCompositeDataSet *dobj, xdmf2::XdmfGrid *grid)
vtkXdmfWriter::HeavyDataGroupName
char * HeavyDataGroupName
Definition: vtkXdmfWriter.h:175
vtkXdmfWriter::HeavyDataFileName
char * HeavyDataFileName
Definition: vtkXdmfWriter.h:174
vtkgl::string
GLsizei const GLchar ** string
Definition: vtkgl.h:12011
vtkXdmfWriter::WriteAtomicDataSet
virtual int WriteAtomicDataSet(vtkDataObject *dobj, xdmf2::XdmfGrid *grid)
vtkXdmfWriter::LightDataLimit
int LightDataLimit
Definition: vtkXdmfWriter.h:179
vtkXdmfWriter::SetupDataArrayXML
virtual void SetupDataArrayXML(xdmf2::XdmfElement *, xdmf2::XdmfArray *) const