X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FDriverMED%2FDriverMED_R_SMESHDS_Mesh.cxx;h=e2b117cf632a855f5c619cae9716579c19356237;hb=a88c5ba91e8840a2378a303cedd3bebe5f4f2570;hp=b8d73352b99bac97cfa98667350f9a222664f265;hpb=7a3ecab720cc517ace17c5c4677fd3c20c0051ee;p=modules%2Fsmesh.git diff --git a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx index b8d73352b..e2b117cf6 100644 --- a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx +++ b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2020 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -156,7 +156,7 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() } if(MYDEBUG) MESSAGE(aGroupName); if ( strncmp( aGroupName.c_str(), NIG_GROUP_PREFIX, strlen(NIG_GROUP_PREFIX) ) != 0 ) - aFamily->AddGroupName(aGroupName); + aFamily->AddGroupName( fixUTF8( aGroupName )); } aFamily->SetId( aFamId ); myFamilies[aFamId] = aFamily; @@ -266,14 +266,14 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() } #endif if ( !anIsNodeNum ) - aNodeIds.swap( *(aBallInfo->myConn )); + aNodeIds.assign( aBallInfo->myConn->begin(), aBallInfo->myConn->end()); // allocate array of diameters vtkIdType maxID = myMesh->MaxElementID() + aNbBalls; if ( anIsElemNum && !aBallInfo->myElemNum->empty() ) maxID = *std::max_element( aBallInfo->myElemNum->begin(), aBallInfo->myElemNum->end() ); - myMesh->getGrid()->AllocateDiameters( maxID ); // performance optimization + myMesh->GetGrid()->AllocateDiameters( maxID ); // performance optimization // create balls SMDS_MeshElement* anElement; @@ -1038,8 +1038,6 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() aResult = addMessage( "Unknown exception", /*isFatal=*/true ); } #endif - if (myMesh) - myMesh->compactMesh(); // Mantis issue 0020483 if (aResult == DRS_OK && isDescConn) { @@ -1137,6 +1135,14 @@ void DriverMED_R_SMESHDS_Mesh::GetGroup(SMESHDS_Group* theGroup) if (( famVecPtr = myGroups2FamiliesMap.ChangeSeek( aGroupName ))) { + size_t groupSize = 0; + for ( size_t i = 0; i < famVecPtr->size(); ++i ) + { + DriverMED_FamilyPtr aFamily = (*famVecPtr)[i]; + groupSize += aFamily->NbElements( theGroup->GetType() ); + } + theGroup->SMDSGroup().Reserve( groupSize ); + for ( size_t i = 0; i < famVecPtr->size(); ++i ) { DriverMED_FamilyPtr aFamily = (*famVecPtr)[i];