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 
67  static vtkDataArray *XdmfToVTKArray(
68  XdmfArray* xArray,
69  std::string attrName,//TODO: needed because XdmfArray::getName() misbehaves
70  unsigned int preferredComponents = 0,
71  vtkXdmf3ArrayKeeper *keeper=NULL);
72 
76  static bool VTKToXdmfArray(
77  vtkDataArray *vArray,
78  XdmfArray* xArray,
79  unsigned int rank = 0, unsigned int *dims = NULL);
80 
85  static void XdmfToVTKAttributes(
86  vtkXdmf3ArraySelection *fselection,
87  vtkXdmf3ArraySelection *cselection,
88  vtkXdmf3ArraySelection *pselection,
89  XdmfGrid *grid, vtkDataObject *dObject,
90  vtkXdmf3ArrayKeeper *keeper=NULL);
91 
96  static void VTKToXdmfAttributes(vtkDataObject *dObject, XdmfGrid *grid);
97 
99 
102  static unsigned int GetNumberOfPointsPerCell(int vtk_cell_type, bool &fail);
103  static int GetVTKCellType(shared_ptr<const XdmfTopologyType> topologyType);
104  static int GetXdmfCellType(int vtkType);
106 
108 
111  static void SetTime(XdmfGrid *grid, double hasTime, double time);
112  static void SetTime(XdmfGraph *graph, double hasTime, double time);
114 
115  //vtkXdmf3RegularGrid
116 
120  static void XdmfToVTK(
121  vtkXdmf3ArraySelection *fselection,
122  vtkXdmf3ArraySelection *cselection,
123  vtkXdmf3ArraySelection *pselection,
124  XdmfRegularGrid *grid,
125  vtkImageData *dataSet,
126  vtkXdmf3ArrayKeeper *keeper=NULL);
127 
131  static void CopyShape(
132  XdmfRegularGrid *grid,
133  vtkImageData *dataSet,
134  vtkXdmf3ArrayKeeper *keeper=NULL);
135 
139  static void VTKToXdmf(
140  vtkImageData *dataSet,
141  XdmfDomain *domain,
142  bool hasTime, double time,
143  const char* name = 0);
144 
145  //vtkXdmf3RectilinearGrid
149  static void XdmfToVTK(
150  vtkXdmf3ArraySelection *fselection,
151  vtkXdmf3ArraySelection *cselection,
152  vtkXdmf3ArraySelection *pselection,
153  XdmfRectilinearGrid *grid,
154  vtkRectilinearGrid *dataSet,
155  vtkXdmf3ArrayKeeper *keeper=NULL);
156 
160  static void CopyShape(
161  XdmfRectilinearGrid *grid,
162  vtkRectilinearGrid *dataSet,
163  vtkXdmf3ArrayKeeper *keeper=NULL);
164 
168  static void VTKToXdmf(
169  vtkRectilinearGrid *dataSet,
170  XdmfDomain *domain,
171  bool hasTime, double time,
172  const char* name = 0);
173 
174  //vtkXdmf3CurvilinearGrid
178  static void XdmfToVTK(
179  vtkXdmf3ArraySelection *fselection,
180  vtkXdmf3ArraySelection *cselection,
181  vtkXdmf3ArraySelection *pselection,
182  XdmfCurvilinearGrid *grid,
183  vtkStructuredGrid *dataSet,
184  vtkXdmf3ArrayKeeper *keeper=NULL);
185 
189  static void CopyShape(
190  XdmfCurvilinearGrid *grid,
191  vtkStructuredGrid *dataSet,
192  vtkXdmf3ArrayKeeper *keeper=NULL);
193 
197  static void VTKToXdmf(
198  vtkStructuredGrid *dataSet,
199  XdmfDomain *domain,
200  bool hasTime, double time,
201  const char* name = 0);
202 
203  //vtkXdmf3UnstructuredGrid
207  static void XdmfToVTK(
208  vtkXdmf3ArraySelection *fselection,
209  vtkXdmf3ArraySelection *cselection,
210  vtkXdmf3ArraySelection *pselection,
211  XdmfUnstructuredGrid *grid,
212  vtkUnstructuredGrid *dataSet,
213  vtkXdmf3ArrayKeeper *keeper=NULL);
214 
218  static void CopyShape(
219  XdmfUnstructuredGrid *grid,
220  vtkUnstructuredGrid *dataSet,
221  vtkXdmf3ArrayKeeper *keeper=NULL);
222 
226  static void VTKToXdmf(
227  vtkPointSet *dataSet,
228  XdmfDomain *domain,
229  bool hasTime, double time,
230  const char* name = 0);
231 
232  //vtkXdmf3Graph
236  static void XdmfToVTK(
237  vtkXdmf3ArraySelection *fselection,
238  vtkXdmf3ArraySelection *cselection,
239  vtkXdmf3ArraySelection *pselection,
240  XdmfGraph *grid,
241  vtkMutableDirectedGraph *dataSet,
242  vtkXdmf3ArrayKeeper *keeper=NULL);
243 
247  static void VTKToXdmf(
248  vtkDirectedGraph *dataSet,
249  XdmfDomain *domain,
250  bool hasTime, double time,
251  const char* name = 0);
252 
253 
254  //Side Sets
255 
260  static void XdmfToVTKAttributes(
261 /*
262  vtkXdmf3ArraySelection *fselection,
263  vtkXdmf3ArraySelection *cselection,
264  vtkXdmf3ArraySelection *pselection,
265 */
266  XdmfSet *grid, vtkDataObject *dObject,
267  vtkXdmf3ArrayKeeper *keeper=NULL);
268 
273  static void XdmfSubsetToVTK(
274  XdmfGrid *grid,
275  unsigned int setnum,
276  vtkDataSet *dataSet,
277  vtkUnstructuredGrid *subSet,
278  vtkXdmf3ArrayKeeper *keeper=NULL);
279 
280 };
281 
282 #endif
283 // VTK-HeaderTest-Exclude: vtkXdmf3DataSet.h
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:62
abstract class for specifying dataset behavior
Definition: vtkPointSet.h:42
A directed graph.
topologically and geometrically regular array of data
Definition: vtkImageData.h:45
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