VTK
|
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