VTK
/Users/kitware/Dashboards/MyTests/VTK_BLD_Release_docs/Utilities/Doxygen/dox/IO/Xdmf3/vtkXdmf3DataSet.h
Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    vtkXdmf3DataSet.h
00005   Language:  C++
00006 
00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
00008   All rights reserved.
00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00010 
00011      This software is distributed WITHOUT ANY WARRANTY; without even
00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00013      PURPOSE.  See the above copyright notice for more information.
00014 
00015 =========================================================================*/
00030 #ifndef vtkXdmf3DataSet_h
00031 #define vtkXdmf3DataSet_h
00032 
00033 #include "vtkIOXdmf3Module.h" // For export macro
00034 #include "XdmfSharedPtr.hpp"
00035 #include <string> //Needed only for XdmfArray::getName :(
00036 
00037 class vtkXdmf3ArraySelection;
00038 class vtkXdmf3ArrayKeeper;
00039 class XdmfArray;
00040 class vtkDataArray;
00041 class XdmfGrid;
00042 class vtkDataObject;
00043 class XdmfSet;
00044 class vtkDataSet;
00045 class XdmfTopologyType;
00046 class XdmfRegularGrid;
00047 class vtkImageData;
00048 class XdmfRectilinearGrid;
00049 class vtkRectilinearGrid;
00050 class XdmfCurvilinearGrid;
00051 class vtkStructuredGrid;
00052 class XdmfUnstructuredGrid;
00053 class vtkUnstructuredGrid;
00054 class vtkPointSet;
00055 class XdmfGraph;
00056 class vtkMutableDirectedGraph;
00057 class vtkDirectedGraph;
00058 class XdmfDomain;
00059 
00060 
00061 class VTKIOXDMF3_EXPORT vtkXdmf3DataSet
00062 {
00063 public:
00064 
00065   // Common
00066 
00068 
00069   static vtkDataArray *XdmfToVTKArray(
00070     XdmfArray* xArray,
00071     std::string attrName,//TODO: needed because XdmfArray::getName() misbehaves
00072     unsigned int preferredComponents = 0,
00073     vtkXdmf3ArrayKeeper *keeper=NULL);
00075 
00077 
00078   static bool VTKToXdmfArray(
00079     vtkDataArray *vArray,
00080     XdmfArray* xArray,
00081     unsigned int rank = 0, unsigned int *dims = NULL);
00083 
00085 
00087   static void XdmfToVTKAttributes(
00088     vtkXdmf3ArraySelection *fselection,
00089     vtkXdmf3ArraySelection *cselection,
00090     vtkXdmf3ArraySelection *pselection,
00091     XdmfGrid *grid, vtkDataObject *dObject,
00092     vtkXdmf3ArrayKeeper *keeper=NULL);
00094 
00097   static void VTKToXdmfAttributes(vtkDataObject *dObject, XdmfGrid *grid);
00098 
00100 
00101   static unsigned int GetNumberOfPointsPerCell(int vtk_cell_type, bool &fail);
00102   static int GetVTKCellType(shared_ptr<const XdmfTopologyType> topologyType);
00103   static int GetXdmfCellType(int vtkType);
00105 
00107 
00108   static void SetTime(XdmfGrid *grid, double hasTime, double time);
00109   static void SetTime(XdmfGraph *graph, double hasTime, double time);
00111 
00112   //vtkXdmf3RegularGrid
00113 
00115 
00116   static void XdmfToVTK(
00117     vtkXdmf3ArraySelection *fselection,
00118     vtkXdmf3ArraySelection *cselection,
00119     vtkXdmf3ArraySelection *pselection,
00120     XdmfRegularGrid *grid,
00121     vtkImageData *dataSet,
00122     vtkXdmf3ArrayKeeper *keeper=NULL);
00124 
00126 
00127   static void CopyShape(
00128     XdmfRegularGrid *grid,
00129     vtkImageData *dataSet,
00130     vtkXdmf3ArrayKeeper *keeper=NULL);
00132 
00134 
00135   static void VTKToXdmf(
00136     vtkImageData *dataSet,
00137     XdmfDomain *domain,
00138     bool hasTime, double time,
00139     const char* name = 0);
00141 
00142   //vtkXdmf3RectilinearGrid
00144 
00145   static void XdmfToVTK(
00146     vtkXdmf3ArraySelection *fselection,
00147     vtkXdmf3ArraySelection *cselection,
00148     vtkXdmf3ArraySelection *pselection,
00149     XdmfRectilinearGrid *grid,
00150     vtkRectilinearGrid *dataSet,
00151     vtkXdmf3ArrayKeeper *keeper=NULL);
00153 
00155 
00156   static void CopyShape(
00157     XdmfRectilinearGrid *grid,
00158     vtkRectilinearGrid *dataSet,
00159     vtkXdmf3ArrayKeeper *keeper=NULL);
00161 
00163 
00164   static void VTKToXdmf(
00165     vtkRectilinearGrid *dataSet,
00166     XdmfDomain *domain,
00167     bool hasTime, double time,
00168     const char* name = 0);
00170 
00171   //vtkXdmf3CurvilinearGrid
00173 
00174   static void XdmfToVTK(
00175     vtkXdmf3ArraySelection *fselection,
00176     vtkXdmf3ArraySelection *cselection,
00177     vtkXdmf3ArraySelection *pselection,
00178     XdmfCurvilinearGrid *grid,
00179     vtkStructuredGrid *dataSet,
00180     vtkXdmf3ArrayKeeper *keeper=NULL);
00182 
00184 
00185   static void CopyShape(
00186     XdmfCurvilinearGrid *grid,
00187     vtkStructuredGrid *dataSet,
00188     vtkXdmf3ArrayKeeper *keeper=NULL);
00190 
00192 
00193   static void VTKToXdmf(
00194     vtkStructuredGrid *dataSet,
00195     XdmfDomain *domain,
00196     bool hasTime, double time,
00197     const char* name = 0);
00199 
00200   //vtkXdmf3UnstructuredGrid
00202 
00203   static void XdmfToVTK(
00204     vtkXdmf3ArraySelection *fselection,
00205     vtkXdmf3ArraySelection *cselection,
00206     vtkXdmf3ArraySelection *pselection,
00207     XdmfUnstructuredGrid *grid,
00208     vtkUnstructuredGrid *dataSet,
00209     vtkXdmf3ArrayKeeper *keeper=NULL);
00211 
00213 
00214   static void CopyShape(
00215     XdmfUnstructuredGrid *grid,
00216     vtkUnstructuredGrid *dataSet,
00217     vtkXdmf3ArrayKeeper *keeper=NULL);
00219 
00221 
00222   static void VTKToXdmf(
00223     vtkPointSet *dataSet,
00224     XdmfDomain *domain,
00225     bool hasTime, double time,
00226     const char* name = 0);
00228 
00229   //vtkXdmf3Graph
00231 
00232   static void XdmfToVTK(
00233     vtkXdmf3ArraySelection *fselection,
00234     vtkXdmf3ArraySelection *cselection,
00235     vtkXdmf3ArraySelection *pselection,
00236     XdmfGraph *grid,
00237     vtkMutableDirectedGraph *dataSet,
00238     vtkXdmf3ArrayKeeper *keeper=NULL);
00240 
00242 
00243   static void VTKToXdmf(
00244     vtkDirectedGraph *dataSet,
00245     XdmfDomain *domain,
00246     bool hasTime, double time,
00247     const char* name = 0);
00249 
00250 
00251   //Side Sets
00252 
00254 
00256   static void XdmfToVTKAttributes(
00257 /*
00258     vtkXdmf3ArraySelection *fselection,
00259     vtkXdmf3ArraySelection *cselection,
00260     vtkXdmf3ArraySelection *pselection,
00261 */
00262     XdmfSet *grid, vtkDataObject *dObject,
00263     vtkXdmf3ArrayKeeper *keeper=NULL);
00265 
00267 
00269   static void XdmfSubsetToVTK(
00270     XdmfGrid *grid,
00271     unsigned int setnum,
00272     vtkDataSet *dataSet,
00273     vtkUnstructuredGrid *subSet,
00274     vtkXdmf3ArrayKeeper *keeper=NULL);
00276 
00277 };
00278 
00279 #endif