2 from vtk.util import numpy_support
3 import medcoupling as mc
6 def mesh_convertor(fileName):
7 reader = vtk.vtkDataSetReader()
8 reader.SetFileName(fileName)
10 ug = reader.GetOutput()
11 return mesh_convertor_mem(ug),ug
13 def mesh_convertor_mem(ug):
14 pts = numpy_support.vtk_to_numpy(ug.GetPoints().GetData())
16 cla = numpy_support.vtk_to_numpy(ug.GetCellLocationsArray())
17 ctvtk = numpy_support.vtk_to_numpy(ug.GetCellTypesArray())
18 conn = numpy_support.vtk_to_numpy(ug.GetCells().GetData())
20 ct=mc.DataArrayInt(np.array(ctvtk,dtype=np.int32))[:]
21 c=mc.DataArrayInt(conn)[:]
22 ci=mc.DataArrayInt(cla)[:]
24 vtk2med = mc.DataArrayInt(mc.vtk2med_cell_types())
26 ct.transformWithIndArr(vtk2med)
28 ci = mc.DataArrayInt.Aggregate([ci,mc.DataArrayInt([len(c)])])
31 m=mc.MEDCouplingUMesh("mesh",2)
32 m.setCoords(mc.DataArrayDouble(np.array(pts,dtype=np.float64)))
33 m.setConnectivity(c,ci,True)
34 m.checkConsistencyLight()