X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FDriverMED%2FDriverMED_R_SMESHDS_Mesh.cxx;h=16c555eaf4723c41a7dfb138aea43e0d6f266f54;hp=ba851616c2851908b1dc7c075d991668fad55a39;hb=5d0b75d9d1a9935ec419e820e6dde45a665dd978;hpb=23d90107acec5e54ded86d9f309fe5cb42720b78;ds=sidebyside diff --git a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx index ba851616c..16c555eaf 100644 --- a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx +++ b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2015 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2016 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 @@ -42,7 +42,7 @@ //#include #ifdef _DEBUG_ -static int MYDEBUG = 1; +static int MYDEBUG = 0; //#define _DEXCEPT_ #else static int MYDEBUG = 0; @@ -155,7 +155,8 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() aFamily->SetGroupAttributVal(anAttrVal); } if(MYDEBUG) MESSAGE(aGroupName); - aFamily->AddGroupName(aGroupName); + if ( strncmp( aGroupName.c_str(), NIG_GROUP_PREFIX, strlen(NIG_GROUP_PREFIX) ) != 0 ) + aFamily->AddGroupName(aGroupName); } aFamily->SetId( aFamId ); myFamilies[aFamId] = aFamily; @@ -172,7 +173,7 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() //------------------------------------------------------ PNodeInfo aNodeInfo = aMed->GetPNodeInfo(aMeshInfo); if (!aNodeInfo) { - aResult = DRS_FAIL; + aResult = addMessage("No nodes", /*isFatal=*/true ); continue; } aMeshInfo->myDim=aMeshInfo->mySpaceDim;// ignore meshdim in MEDFile because it can be false @@ -365,9 +366,9 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() } #ifndef _DEXCEPT_ } catch(const std::exception& exc) { - aResult = DRS_FAIL; + aResult = addMessage( exc.what(), /*isFatal=*/true ); } catch (...) { - aResult = DRS_FAIL; + aResult = addMessage( "Unknown exception", /*isFatal=*/true ); } #endif if ( !anElement ) { @@ -500,7 +501,8 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() default:; } vector aNodeIds(aNbNodes); - for(int iElem = 0; iElem < aNbElems; iElem++){ + for ( int iElem = 0; iElem < aNbElems; iElem++ ) + { bool anIsValidConnect = false; TCConnSlice aConnSlice = aCellInfo->GetConnSlice(iElem); #ifndef _DEXCEPT_ @@ -521,10 +523,10 @@ Driver_Mesh::Status DriverMED_R_SMESHDS_Mesh::Perform() #ifndef _DEXCEPT_ }catch(const std::exception& exc){ INFOS("Following exception was caught:\n\t"<AddElement(anElement); - myFamilies[aFamNum]->SetType(anElement->GetType()); + aFamily->AddElement(anElement); + aFamily->SetType(anElement->GetType()); } } - } - }} - } - } + } // loop on aNbElems + }} // switch(aGeom) + } // loop on aGeom2Size + } // loop on aEntityInfo + if (aDescendingEntitiesMap.Extent()) isDescConn = true; // Mantis issue 0020483 + } // for(int iMesh = 0; iMesh < aNbMeshes; iMesh++) #ifndef _DEXCEPT_ } catch(const std::exception& exc) { INFOS("The following exception was caught:\n\t"<GetTypes().count( theGroup->GetType() ) && aFamily->MemberOf(aGroupName)) { - const set& anElements = aFamily->GetElements(); - set::const_iterator anElemsIter = anElements.begin(); + const ElementsSet& anElements = aFamily->GetElements(); + ElementsSet::const_iterator anElemsIter = anElements.begin(); for (; anElemsIter != anElements.end(); anElemsIter++) { const SMDS_MeshElement * element = *anElemsIter; @@ -1105,8 +1111,8 @@ void DriverMED_R_SMESHDS_Mesh::GetSubMesh (SMESHDS_SubMesh* theSubMesh, DriverMED_FamilyPtr aFamily = (*aFamsIter).second; if (aFamily->MemberOf(aName)) { - const set& anElements = aFamily->GetElements(); - set::const_iterator anElemsIter = anElements.begin(); + const ElementsSet& anElements = aFamily->GetElements(); + ElementsSet::const_iterator anElemsIter = anElements.begin(); if (aFamily->GetType() == SMDSAbs_Node) { for (; anElemsIter != anElements.end(); anElemsIter++) @@ -1141,14 +1147,13 @@ void DriverMED_R_SMESHDS_Mesh::CreateAllSubMeshes () if (aName.substr(0, 7) == string("SubMesh")) { int Id = atoi(string(aName).substr(7).c_str()); - set anElements = aFamily->GetElements(); - set::iterator anElemsIter = anElements.begin(); + const ElementsSet& anElements = aFamily->GetElements(); + ElementsSet::const_iterator anElemsIter = anElements.begin(); if (aFamily->GetType() == SMDSAbs_Node) { for (; anElemsIter != anElements.end(); anElemsIter++) { - SMDS_MeshNode* node = const_cast - ( static_cast( *anElemsIter )); + const SMDS_MeshNode* node = static_cast( *anElemsIter ); // find out a shape type TopoDS_Shape aShape = myMesh->IndexToShape( Id ); int aShapeType = ( aShape.IsNull() ? -1 : aShape.ShapeType() );