VTK
vtkXdmf3DataSet.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkXdmf3DataSet.h
5  Language: C++
6 
7  Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
8  All rights reserved.
9  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
10 
11  This software is distributed WITHOUT ANY WARRANTY; without even
12  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
13  PURPOSE. See the above copyright notice for more information.
14 
15 =========================================================================*/
30 #ifndef vtkXdmf3DataSet_h
31 #define vtkXdmf3DataSet_h
32 
33 #include "vtkIOXdmf3Module.h" // For export macro
34 #include "XdmfSharedPtr.hpp"
35 #include <string> //Needed only for XdmfArray::getName :(
36 
39 class XdmfArray;
40 class vtkDataArray;
41 class XdmfGrid;
42 class vtkDataObject;
43 class XdmfSet;
44 class vtkDataSet;
45 class XdmfTopologyType;
46 class XdmfRegularGrid;
47 class vtkImageData;
48 class XdmfRectilinearGrid;
49 class vtkRectilinearGrid;
50 class XdmfCurvilinearGrid;
51 class vtkStructuredGrid;
52 class XdmfUnstructuredGrid;
54 class vtkPointSet;
55 class XdmfGraph;
57 class vtkDirectedGraph;
58 class XdmfDomain;
59 
60 
61 class VTKIOXDMF3_EXPORT vtkXdmf3DataSet
62 {
63 public:
64 
65  // Common
66 
68 
69  static vtkDataArray *XdmfToVTKArray(
70  XdmfArray* xArray,
71  std::string attrName,//TODO: needed because XdmfArray::getName() misbehaves
72  unsigned int preferredComponents = 0,
73  vtkXdmf3ArrayKeeper *keeper=NULL);
75 
77 
78  static bool VTKToXdmfArray(
79  vtkDataArray *vArray,
80  XdmfArray* xArray,
81  unsigned int rank = 0, unsigned int *dims = NULL);
83 
85 
87  static void XdmfToVTKAttributes(
88  vtkXdmf3ArraySelection *fselection,
89  vtkXdmf3ArraySelection *cselection,
90  vtkXdmf3ArraySelection *pselection,
91  XdmfGrid *grid, vtkDataObject *dObject,
92  vtkXdmf3ArrayKeeper *keeper=NULL);
94 
97  static void VTKToXdmfAttributes(vtkDataObject *dObject, XdmfGrid *grid);
98 
100 
101  static unsigned int GetNumberOfPointsPerCell(int vtk_cell_type, bool &fail);
102  static int GetVTKCellType(shared_ptr<const XdmfTopologyType> topologyType);
103  static int GetXdmfCellType(int vtkType);
105 
107 
108  static void SetTime(XdmfGrid *grid, double hasTime, double time);
109  static void SetTime(XdmfGraph *graph, double hasTime, double time);
111 
112  //vtkXdmf3RegularGrid
113 
115 
116  static void XdmfToVTK(
117  vtkXdmf3ArraySelection *fselection,
118  vtkXdmf3ArraySelection *cselection,
119  vtkXdmf3ArraySelection *pselection,
120  XdmfRegularGrid *grid,
121  vtkImageData *dataSet,
122  vtkXdmf3ArrayKeeper *keeper=NULL);
124 
126 
127  static void CopyShape(
128  XdmfRegularGrid *grid,
129  vtkImageData *dataSet,
130  vtkXdmf3ArrayKeeper *keeper=NULL);
132 
134 
135  static void VTKToXdmf(
136  vtkImageData *dataSet,
137  XdmfDomain *domain,
138  bool hasTime, double time,
139  const char* name = 0);
141 
142  //vtkXdmf3RectilinearGrid
144 
145  static void XdmfToVTK(
146  vtkXdmf3ArraySelection *fselection,
147  vtkXdmf3ArraySelection *cselection,
148  vtkXdmf3ArraySelection *pselection,
149  XdmfRectilinearGrid *grid,
150  vtkRectilinearGrid *dataSet,
151  vtkXdmf3ArrayKeeper *keeper=NULL);
153 
155 
156  static void CopyShape(
157  XdmfRectilinearGrid *grid,
158  vtkRectilinearGrid *dataSet,
159  vtkXdmf3ArrayKeeper *keeper=NULL);
161 
163 
164  static void VTKToXdmf(
165  vtkRectilinearGrid *dataSet,
166  XdmfDomain *domain,
167  bool hasTime, double time,
168  const char* name = 0);
170 
171  //vtkXdmf3CurvilinearGrid
173 
174  static void XdmfToVTK(
175  vtkXdmf3ArraySelection *fselection,
176  vtkXdmf3ArraySelection *cselection,
177  vtkXdmf3ArraySelection *pselection,
178  XdmfCurvilinearGrid *grid,
179  vtkStructuredGrid *dataSet,
180  vtkXdmf3ArrayKeeper *keeper=NULL);
182 
184 
185  static void CopyShape(
186  XdmfCurvilinearGrid *grid,
187  vtkStructuredGrid *dataSet,
188  vtkXdmf3ArrayKeeper *keeper=NULL);
190 
192 
193  static void VTKToXdmf(
194  vtkStructuredGrid *dataSet,
195  XdmfDomain *domain,
196  bool hasTime, double time,
197  const char* name = 0);
199 
200  //vtkXdmf3UnstructuredGrid
202 
203  static void XdmfToVTK(
204  vtkXdmf3ArraySelection *fselection,
205  vtkXdmf3ArraySelection *cselection,
206  vtkXdmf3ArraySelection *pselection,
207  XdmfUnstructuredGrid *grid,
208  vtkUnstructuredGrid *dataSet,
209  vtkXdmf3ArrayKeeper *keeper=NULL);
211 
213 
214  static void CopyShape(
215  XdmfUnstructuredGrid *grid,
216  vtkUnstructuredGrid *dataSet,
217  vtkXdmf3ArrayKeeper *keeper=NULL);
219 
221 
222  static void VTKToXdmf(
223  vtkPointSet *dataSet,
224  XdmfDomain *domain,
225  bool hasTime, double time,
226  const char* name = 0);
228 
229  //vtkXdmf3Graph
231 
232  static void XdmfToVTK(
233  vtkXdmf3ArraySelection *fselection,
234  vtkXdmf3ArraySelection *cselection,
235  vtkXdmf3ArraySelection *pselection,
236  XdmfGraph *grid,
237  vtkMutableDirectedGraph *dataSet,
238  vtkXdmf3ArrayKeeper *keeper=NULL);
240 
242 
243  static void VTKToXdmf(
244  vtkDirectedGraph *dataSet,
245  XdmfDomain *domain,
246  bool hasTime, double time,
247  const char* name = 0);
249 
250 
251  //Side Sets
252 
254 
256  static void XdmfToVTKAttributes(
257 /*
258  vtkXdmf3ArraySelection *fselection,
259  vtkXdmf3ArraySelection *cselection,
260  vtkXdmf3ArraySelection *pselection,
261 */
262  XdmfSet *grid, vtkDataObject *dObject,
263  vtkXdmf3ArrayKeeper *keeper=NULL);
265 
267 
269  static void XdmfSubsetToVTK(
270  XdmfGrid *grid,
271  unsigned int setnum,
272  vtkDataSet *dataSet,
273  vtkUnstructuredGrid *subSet,
274  vtkXdmf3ArrayKeeper *keeper=NULL);
276 
277 };
278 
279 #endif
a dataset that is topologically regular with variable spacing in the three coordinate directions ...
LRU cache of XDMF Arrays.
abstract class to specify dataset behavior
Definition: vtkDataSet.h:61
abstract class for specifying dataset behavior
Definition: vtkPointSet.h:44
A directed graph.
topologically and geometrically regular array of data
Definition: vtkImageData.h:44
dataset represents arbitrary combinations of all possible cell types
abstract superclass for arrays of numeric data
Definition: vtkDataArray.h:54
An editable directed graph.
topologically regular array of data
dataset level translation between xdmf3 and vtk
general representation of visualization data
Definition: vtkDataObject.h:64
helper to identify requested arrays with