Salome HOME
Fix for PAL8269(One can't select a pointer on geometry in mesh filters).
[modules/smesh.git] / src / DriverMED / DriverMED_Family.cxx
index 778c282a57572d59dbaeb1ed438f3cdcb0a631cb..2c6a61719976edcf136e0b49a9f8295690753b4c 100644 (file)
@@ -193,10 +193,10 @@ list<DriverMED_FamilyPtr> DriverMED_Family::MakeFamilies
     aFamilies.push_back(aFreeVolumesFam);
   }
 
-  DriverMED_FamilyPtr aNullFam (new DriverMED_Family);
-  aNullFam->SetId(0);
-  aNullFam->myType = SMDSAbs_All;
-  aFamilies.push_back(aNullFam);
+//   DriverMED_FamilyPtr aNullFam (new DriverMED_Family);
+//   aNullFam->SetId(0);
+//   aNullFam->myType = SMDSAbs_All;
+//   aFamilies.push_back(aNullFam);
 
   return aFamilies;
 }
@@ -211,9 +211,18 @@ DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper,
                                const MED::PMeshInfo& theMeshInfo) const
 {
   string aValue;
+
   ostringstream aStr;
-  aStr << myId;
+
+  aStr << "FAM_" << myId;
+  set<string>::iterator aGrIter = myGroupNames.begin();
+  for (; aGrIter != myGroupNames.end(); aGrIter++)
+  {
+    aStr << "_" << *aGrIter;
+  }
+
   aValue = aStr.str();
+
   MED::TStringVector anAttrDescs (1, "");  // 1 attribute with empty description,
   MED::TIntVector anAttrIds (1, myId);        // Id=0,
   MED::TIntVector anAttrVals (1, myId);       // Value=0
@@ -350,14 +359,16 @@ void DriverMED_Family::Split (DriverMED_FamilyPtr by,
 {
   // Elements
   set<const SMDS_MeshElement *>::iterator anIter = by->myElements.begin();
-  for (; anIter != by->myElements.end(); anIter++)
+  while ( anIter != by->myElements.end())
   {
     if (myElements.find(*anIter) != myElements.end())
     {
       common->myElements.insert(*anIter);
       myElements.erase(*anIter);
-      by->myElements.erase(*anIter);
+      by->myElements.erase(anIter++);
     }
+    else
+      anIter++;
   }
 
   if (!common->IsEmpty())