]> SALOME platform Git repositories - tools/medcoupling.git/commitdiff
Salome HOME
*** empty log message ***
authorageay <ageay>
Thu, 14 Apr 2011 11:14:04 +0000 (11:14 +0000)
committerageay <ageay>
Thu, 14 Apr 2011 11:14:04 +0000 (11:14 +0000)
src/MEDLoader/MEDFileMesh.cxx
src/MEDLoader/MEDFileMesh.hxx
src/MEDLoader/Swig/MEDLoader.i
src/MEDLoader/Swig/MEDLoaderTest3.py

index 954263df4ade5009550d6806f930f125ce7dfd68..9ec1d9a9218bb4a9880ab4127c2145a58a89b7f9 100644 (file)
@@ -1183,9 +1183,19 @@ void MEDFileUMesh::setFamilyNameAttachedOnId(int id, const std::string& newFamNa
   _families[newFamName]=id;
 }
 
-void MEDFileUMesh::setMeshAtLevel(int meshDimRelToMax, MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception)
+void MEDFileUMesh::removeMeshAtLevel(int meshDimRelToMax) throw(INTERP_KERNEL::Exception)
 {
-  setMeshAtLevelGen(meshDimRelToMax,m,true);
+  std::vector<int> levSet=getNonEmptyLevels();
+  std::vector<int>::const_iterator it=std::find(levSet.begin(),levSet.end(),meshDimRelToMax);
+  if(it==levSet.end())
+    throw INTERP_KERNEL::Exception("MEDFileUMesh::removeMeshAtLevel : the requested level is not existing !");
+  int pos=(-meshDimRelToMax);
+  _ms[pos]=0;
+}
+
+void MEDFileUMesh::setMeshAtLevel(int meshDimRelToMax, MEDCouplingUMesh *m, bool newOrOld) throw(INTERP_KERNEL::Exception)
+{
+  setMeshAtLevelGen(meshDimRelToMax,m,newOrOld);
 }
 
 void MEDFileUMesh::setMeshAtLevelOld(int meshDimRelToMax, MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception)
index 98b42f6de1a05c4e974fa893e0247357cf9d935f..7550f8cbf1783358a7df3dc4b8bfce0e728f7554 100644 (file)
@@ -154,7 +154,8 @@ namespace ParaMEDMEM
     void setFamilyFieldArr(int meshDimRelToMaxExt, DataArrayInt *famArr) throw(INTERP_KERNEL::Exception);
     void setRenumFieldArr(int meshDimRelToMaxExt, DataArrayInt *renumArr) throw(INTERP_KERNEL::Exception);
     void addNodeGroup(const std::string& name, const std::vector<int>& ids) throw(INTERP_KERNEL::Exception);
-    void setMeshAtLevel(int meshDimRelToMax, MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception);
+    void removeMeshAtLevel(int meshDimRelToMax) throw(INTERP_KERNEL::Exception);
+    void setMeshAtLevel(int meshDimRelToMax, MEDCouplingUMesh *m, bool newOrOld=false) throw(INTERP_KERNEL::Exception);
     void setMeshAtLevelOld(int meshDimRelToMax, MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception);
     void setMeshAtLevelGen(int meshDimRelToMax, MEDCouplingUMesh *m, bool newOrOld) throw(INTERP_KERNEL::Exception);
     void setGroupsFromScratch(int meshDimRelToMax, const std::vector<const MEDCouplingUMesh *>& ms) throw(INTERP_KERNEL::Exception);
index d1320995b1f081cabd0f738382f20caf2ff11121..4f05aebf487d0459cb9dabe9140985d60e8ca6fa 100644 (file)
@@ -377,7 +377,8 @@ namespace ParaMEDMEM
     void eraseGroupsAtLevel(int meshDimRelToMaxExt) throw(INTERP_KERNEL::Exception);
     void setFamilyField(DataArrayInt *arr, const std::vector< std::vector< int > > &userfids, const std::vector<std::string>& grpNames, bool renum=false) throw(INTERP_KERNEL::Exception);
     void addNodeGroup(const std::string& name, const std::vector<int>& ids) throw(INTERP_KERNEL::Exception);
-    void setMeshAtLevel(int meshDimRelToMax, MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception);
+    void removeMeshAtLevel(int meshDimRelToMax) throw(INTERP_KERNEL::Exception);
+    void setMeshAtLevel(int meshDimRelToMax, MEDCouplingUMesh *m, bool newOrOld=false) throw(INTERP_KERNEL::Exception);
     void setMeshAtLevelOld(int meshDimRelToMax, MEDCouplingUMesh *m) throw(INTERP_KERNEL::Exception);
     void setMeshAtLevelGen(int meshDimRelToMax, MEDCouplingUMesh *m, bool newOrOld) throw(INTERP_KERNEL::Exception);
     void setGroupsFromScratch(int meshDimRelToMax, const std::vector<const MEDCouplingUMesh *>& ms) throw(INTERP_KERNEL::Exception);
index 355de88e99a9b9da34befb1436b317f7e08d4a23..32781f31a27fe2fcf24f2078a33d4b0e97c18f83 100644 (file)
@@ -209,9 +209,11 @@ class MEDLoaderTest(unittest.TestCase):
         renumNode=DataArrayInt.New()
         renumNode.setValues([10,11,12,13,14,15,16,17,18],9,1)
         mm.setRenumFieldArr(1,renumNode)
-        mm.setMeshAtLevel(-1,m1);
-        mm.setMeshAtLevel(0,m);
-        mm.setMeshAtLevel(-2,m2);
+        mm.setMeshAtLevel(-1,m1,True);
+        mm.setMeshAtLevel(0,m,True);
+        mm.setMeshAtLevel(-2,m2,True);
+        mm.removeMeshAtLevel(-2)
+        mm.setMeshAtLevel(-2,m2,True);
         # playing with groups
         g1_2=DataArrayInt.New()
         g1_2.setValues([2,3],2,1)