X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH%2FSMESH_Mesh.cxx;h=d39700ed360a2600e4a38aedbf9f059f0d65b4b4;hp=58c6a227ba0442675bcc17cb466cd75199dc0a3e;hb=163dc9b8fdb3977baa5d73c51c7d185a4996b1af;hpb=72982ad122fe1a3e9812714794e408a4e8dcfd68 diff --git a/src/SMESH/SMESH_Mesh.cxx b/src/SMESH/SMESH_Mesh.cxx index 58c6a227b..d39700ed3 100644 --- a/src/SMESH/SMESH_Mesh.cxx +++ b/src/SMESH/SMESH_Mesh.cxx @@ -1029,12 +1029,15 @@ bool SMESH_Mesh::GetAutoColor() throw(SALOME_Exception) bool SMESH_Mesh::HasDuplicatedGroupNamesMED() { - set aGroupNames; - for ( map::iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ ) { + //set aGroupNames; // Corrected for Mantis issue 0020028 + map< SMDSAbs_ElementType, set > aGroupNames; + for ( map::iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ ) + { SMESH_Group* aGroup = it->second; + SMDSAbs_ElementType aType = aGroup->GetGroupDS()->GetType(); string aGroupName = aGroup->GetName(); aGroupName.resize(MAX_MED_GROUP_NAME_LENGTH); - if (!aGroupNames.insert(aGroupName).second) + if (!aGroupNames[aType].insert(aGroupName).second) return true; } @@ -1067,17 +1070,19 @@ void SMESH_Mesh::ExportMED(const char *file, } // Pass groups to writer. Provide unique group names. - set aGroupNames; + //set aGroupNames; // Corrected for Mantis issue 0020028 + map< SMDSAbs_ElementType, set > aGroupNames; char aString [256]; int maxNbIter = 10000; // to guarantee cycle finish for ( map::iterator it = _mapGroup.begin(); it != _mapGroup.end(); it++ ) { SMESH_Group* aGroup = it->second; SMESHDS_GroupBase* aGroupDS = aGroup->GetGroupDS(); if ( aGroupDS ) { + SMDSAbs_ElementType aType = aGroupDS->GetType(); string aGroupName0 = aGroup->GetName(); aGroupName0.resize(MAX_MED_GROUP_NAME_LENGTH); string aGroupName = aGroupName0; - for (int i = 1; !aGroupNames.insert(aGroupName).second && i < maxNbIter; i++) { + for (int i = 1; !aGroupNames[aType].insert(aGroupName).second && i < maxNbIter; i++) { sprintf(&aString[0], "GR_%d_%s", i, aGroupName0.c_str()); aGroupName = aString; aGroupName.resize(MAX_MED_GROUP_NAME_LENGTH);