Salome HOME
On the road of the ParaMEDReader. MEDLoader can load partially a MEDFileUMesh from...
[tools/medcoupling.git] / src / MEDLoader / Swig / MEDLoaderCommon.i
index 52621541bc451373fe033e69cb00926b04bc9377..3efbfad259a6cc4c4f597338e81f23105b5688dd 100644 (file)
@@ -95,6 +95,7 @@ using namespace ParaMEDMEM;
 %newobject ParaMEDMEM::MEDFileMesh::computeAllFamilyIdsInUse;
 %newobject ParaMEDMEM::MEDFileStructuredMesh::getImplicitFaceMesh;
 %newobject ParaMEDMEM::MEDFileUMesh::New;
+%newobject ParaMEDMEM::MEDFileUMesh::LoadPartOf;
 %newobject ParaMEDMEM::MEDFileUMesh::getCoords;
 %newobject ParaMEDMEM::MEDFileUMesh::getGroup;
 %newobject ParaMEDMEM::MEDFileUMesh::getGroups;
@@ -783,6 +784,17 @@ namespace ParaMEDMEM
          {
            return MEDFileUMesh::New();
          }
+
+         static MEDFileUMesh *LoadPartOf(const std::string& fileName, const std::string& mName, PyObject *types, const std::vector<int>& slicPerTyp, int dt=-1, int it=-1, MEDFileMeshReadSelector *mrs=0) throw(INTERP_KERNEL::Exception)
+         {
+           std::vector<int> typesCpp1;
+           convertPyToNewIntArr3(types,typesCpp1);
+           std::size_t sz(typesCpp1.size());
+           std::vector<INTERP_KERNEL::NormalizedCellType> typesCpp2(sz);
+           for(std::size_t ii=0;ii<sz;ii++)
+             typesCpp2[ii]=(INTERP_KERNEL::NormalizedCellType)typesCpp1[ii];
+           return MEDFileUMesh::LoadPartOf(fileName,mName,typesCpp2,slicPerTyp,dt,it,mrs);
+         }
          
          PyObject *getRevNumberFieldAtLevel(int meshDimRelToMaxExt) const throw(INTERP_KERNEL::Exception)
          {
@@ -3001,17 +3013,17 @@ namespace ParaMEDMEM
     {
       PyObject *buildVTUArrays() const throw(INTERP_KERNEL::Exception)
       {
-       bool isInternal;
+        bool isInternal;
         std::vector< DataArrayDouble * > objs(self->buildVTUArrays(isInternal));
         std::size_t sz(objs.size());
-       PyObject *ret(PyTuple_New(2));
+        PyObject *ret(PyTuple_New(2));
         PyObject *ret0=PyList_New(sz);
         for(std::size_t i=0;i<sz;i++)
           PyList_SetItem(ret0,i,SWIG_NewPointerObj(SWIG_as_voidptr(objs[i]),SWIGTYPE_p_ParaMEDMEM__DataArrayDouble, SWIG_POINTER_OWN | 0 ));
-       PyTuple_SetItem(ret,0,ret0);
-       PyObject *ret1Py(isInternal?Py_True:Py_False);
-       Py_XINCREF(ret1Py);
-       PyTuple_SetItem(ret,1,ret1Py);
+        PyTuple_SetItem(ret,0,ret0);
+        PyObject *ret1Py(isInternal?Py_True:Py_False);
+        Py_XINCREF(ret1Py);
+        PyTuple_SetItem(ret,1,ret1Py);
         return ret;
       }
     }
@@ -3028,7 +3040,7 @@ namespace ParaMEDMEM
       {
         DataArrayDouble *ret0(0);
         std::vector<int> ret1;
-       bool ret2;
+        bool ret2;
         self->buildVTUArrays(ret0,ret1,ret2);
         std::size_t sz(ret1.size());
         PyObject *ret=PyTuple_New(3);
@@ -3037,9 +3049,9 @@ namespace ParaMEDMEM
         for(std::size_t i=0;i<sz;i++)
           PyList_SetItem(ret1Py,i,SWIG_From_int(ret1[i]));
         PyTuple_SetItem(ret,1,ret1Py);
-       PyObject *ret2Py(ret2?Py_True:Py_False);
-       Py_XINCREF(ret2Py);
-       PyTuple_SetItem(ret,2,ret2Py);
+        PyObject *ret2Py(ret2?Py_True:Py_False);
+        Py_XINCREF(ret2Py);
+        PyTuple_SetItem(ret,2,ret2Py);
         return ret;
       }
     }