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 =========================================================================*/
27 #ifndef vtkXdmf3DataSet_h
28 #define vtkXdmf3DataSet_h
29 
30 #include "vtkIOXdmf3Module.h" // For export macro
31 #include "XdmfSharedPtr.hpp"
32 #include <string> //Needed only for XdmfArray::getName :(
33 
36 class XdmfArray;
37 class vtkDataArray;
38 class XdmfGrid;
39 class vtkDataObject;
40 class XdmfSet;
41 class vtkDataSet;
42 class XdmfTopologyType;
43 class XdmfRegularGrid;
44 class vtkImageData;
45 class XdmfRectilinearGrid;
46 class vtkRectilinearGrid;
47 class XdmfCurvilinearGrid;
48 class vtkStructuredGrid;
49 class XdmfUnstructuredGrid;
51 class vtkPointSet;
52 class XdmfGraph;
54 class vtkDirectedGraph;
55 class XdmfDomain;
56 
57 
58 class VTKIOXDMF3_EXPORT vtkXdmf3DataSet
59 {
60 public:
61 
62  // Common
63 
65 
66  static vtkDataArray *XdmfToVTKArray(
67  XdmfArray* xArray,
68  std::string attrName,//TODO: needed because XdmfArray::getName() misbehaves
69  unsigned int preferredComponents = 0,
70  vtkXdmf3ArrayKeeper *keeper=NULL);
72 
74 
75  static bool VTKToXdmfArray(
76  vtkDataArray *vArray,
77  XdmfArray* xArray,
78  unsigned int rank = 0, unsigned int *dims = NULL);
80 
82 
84  static void XdmfToVTKAttributes(
85  vtkXdmf3ArraySelection *fselection,
86  vtkXdmf3ArraySelection *cselection,
87  vtkXdmf3ArraySelection *pselection,
88  XdmfGrid *grid, vtkDataObject *dObject,
89  vtkXdmf3ArrayKeeper *keeper=NULL);
91 
94  static void VTKToXdmfAttributes(vtkDataObject *dObject, XdmfGrid *grid);
95 
97 
98  static unsigned int GetNumberOfPointsPerCell(int vtk_cell_type, bool &fail);
99  static int GetVTKCellType(shared_ptr<const XdmfTopologyType> topologyType);
100  static int GetXdmfCellType(int vtkType);
102 
104 
105  static void SetTime(XdmfGrid *grid, double hasTime, double time);
106  static void SetTime(XdmfGraph *graph, double hasTime, double time);
108 
109  //vtkXdmf3RegularGrid
110 
112 
113  static void XdmfToVTK(
114  vtkXdmf3ArraySelection *fselection,
115  vtkXdmf3ArraySelection *cselection,
116  vtkXdmf3ArraySelection *pselection,
117  XdmfRegularGrid *grid,
118  vtkImageData *dataSet,
119  vtkXdmf3ArrayKeeper *keeper=NULL);
121 
123 
124  static void CopyShape(
125  XdmfRegularGrid *grid,
126  vtkImageData *dataSet,
127  vtkXdmf3ArrayKeeper *keeper=NULL);
129 
131 
132  static void VTKToXdmf(
133  vtkImageData *dataSet,
134  XdmfDomain *domain,
135  bool hasTime, double time,
136  const char* name = 0);
138 
139  //vtkXdmf3RectilinearGrid
141 
142  static void XdmfToVTK(
143  vtkXdmf3ArraySelection *fselection,
144  vtkXdmf3ArraySelection *cselection,
145  vtkXdmf3ArraySelection *pselection,
146  XdmfRectilinearGrid *grid,
147  vtkRectilinearGrid *dataSet,
148  vtkXdmf3ArrayKeeper *keeper=NULL);
150 
152 
153  static void CopyShape(
154  XdmfRectilinearGrid *grid,
155  vtkRectilinearGrid *dataSet,
156  vtkXdmf3ArrayKeeper *keeper=NULL);
158 
160 
161  static void VTKToXdmf(
162  vtkRectilinearGrid *dataSet,
163  XdmfDomain *domain,
164  bool hasTime, double time,
165  const char* name = 0);
167 
168  //vtkXdmf3CurvilinearGrid
170 
171  static void XdmfToVTK(
172  vtkXdmf3ArraySelection *fselection,
173  vtkXdmf3ArraySelection *cselection,
174  vtkXdmf3ArraySelection *pselection,
175  XdmfCurvilinearGrid *grid,
176  vtkStructuredGrid *dataSet,
177  vtkXdmf3ArrayKeeper *keeper=NULL);
179 
181 
182  static void CopyShape(
183  XdmfCurvilinearGrid *grid,
184  vtkStructuredGrid *dataSet,
185  vtkXdmf3ArrayKeeper *keeper=NULL);
187 
189 
190  static void VTKToXdmf(
191  vtkStructuredGrid *dataSet,
192  XdmfDomain *domain,
193  bool hasTime, double time,
194  const char* name = 0);
196 
197  //vtkXdmf3UnstructuredGrid
199 
200  static void XdmfToVTK(
201  vtkXdmf3ArraySelection *fselection,
202  vtkXdmf3ArraySelection *cselection,
203  vtkXdmf3ArraySelection *pselection,
204  XdmfUnstructuredGrid *grid,
205  vtkUnstructuredGrid *dataSet,
206  vtkXdmf3ArrayKeeper *keeper=NULL);
208 
210 
211  static void CopyShape(
212  XdmfUnstructuredGrid *grid,
213  vtkUnstructuredGrid *dataSet,
214  vtkXdmf3ArrayKeeper *keeper=NULL);
216 
218 
219  static void VTKToXdmf(
220  vtkPointSet *dataSet,
221  XdmfDomain *domain,
222  bool hasTime, double time,
223  const char* name = 0);
225 
226  //vtkXdmf3Graph
228 
229  static void XdmfToVTK(
230  vtkXdmf3ArraySelection *fselection,
231  vtkXdmf3ArraySelection *cselection,
232  vtkXdmf3ArraySelection *pselection,
233  XdmfGraph *grid,
234  vtkMutableDirectedGraph *dataSet,
235  vtkXdmf3ArrayKeeper *keeper=NULL);
237 
239 
240  static void VTKToXdmf(
241  vtkDirectedGraph *dataSet,
242  XdmfDomain *domain,
243  bool hasTime, double time,
244  const char* name = 0);
246 
247 
248  //Side Sets
249 
251 
253  static void XdmfToVTKAttributes(
254 /*
255  vtkXdmf3ArraySelection *fselection,
256  vtkXdmf3ArraySelection *cselection,
257  vtkXdmf3ArraySelection *pselection,
258 */
259  XdmfSet *grid, vtkDataObject *dObject,
260  vtkXdmf3ArrayKeeper *keeper=NULL);
262 
264 
266  static void XdmfSubsetToVTK(
267  XdmfGrid *grid,
268  unsigned int setnum,
269  vtkDataSet *dataSet,
270  vtkUnstructuredGrid *subSet,
271  vtkXdmf3ArrayKeeper *keeper=NULL);
273 
274 };
275 
276 #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:41
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