From 720f7af2c3ae6ca1071de7df1142acd56b7ba0b4 Mon Sep 17 00:00:00 2001 From: eap Date: Thu, 5 Nov 2009 11:42:24 +0000 Subject: [PATCH] 0020576: EDF 1163 SMESH: Random type of group at MED import care of families containing elements of different entity types --- src/DriverMED/DriverMED_Family.cxx | 50 +-- src/DriverMED/DriverMED_Family.h | 19 +- src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx | 406 +++++++++++---------- 3 files changed, 242 insertions(+), 233 deletions(-) diff --git a/src/DriverMED/DriverMED_Family.cxx b/src/DriverMED/DriverMED_Family.cxx index 84fbf8937..31a69cfc1 100644 --- a/src/DriverMED/DriverMED_Family.cxx +++ b/src/DriverMED/DriverMED_Family.cxx @@ -23,12 +23,11 @@ // File : DriverMED_Family.cxx // Author : Julia DOROVSKIKH // Module : SMESH -// $Header$ // #include "DriverMED_Family.h" #include "MED_Factory.hxx" -#include +#include using namespace std; @@ -83,7 +82,7 @@ void DriverMED_Family ::SetType(const SMDSAbs_ElementType theType) { - myType = theType; + myTypes.insert( myType = theType ); } SMDSAbs_ElementType @@ -93,6 +92,13 @@ DriverMED_Family return myType; } +const std::set< SMDSAbs_ElementType >& +DriverMED_Family +::GetTypes() const +{ + return myTypes; +} + bool DriverMED_Family ::MemberOf(std::string theGroupName) const @@ -139,11 +145,11 @@ DriverMED_Family DriverMED_FamilyPtrList DriverMED_Family ::MakeFamilies(const SMESHDS_SubMeshPtrMap& theSubMeshes, - const SMESHDS_GroupBasePtrList& theGroups, - const bool doGroupOfNodes, - const bool doGroupOfEdges, - const bool doGroupOfFaces, - const bool doGroupOfVolumes) + const SMESHDS_GroupBasePtrList& theGroups, + const bool doGroupOfNodes, + const bool doGroupOfEdges, + const bool doGroupOfFaces, + const bool doGroupOfVolumes) { DriverMED_FamilyPtrList aFamilies; @@ -189,7 +195,7 @@ DriverMED_Family aFamilies.erase(aCurrIter); } if (aFam2->IsEmpty()) - break; + break; } } // The rest elements of family @@ -218,7 +224,7 @@ DriverMED_Family aFam1->Split(aFam2, aCommon); if (!aCommon->IsEmpty()) { - aCommon->SetGroupAttributVal(0); + aCommon->SetGroupAttributVal(0); aFamilies.push_back(aCommon); } if (aFam1->IsEmpty()) @@ -226,7 +232,7 @@ DriverMED_Family aFamilies.erase(aCurrIter); } if (aFam2->IsEmpty()) - break; + break; } } // The rest elements of group @@ -310,7 +316,7 @@ DriverMED_Family //============================================================================= MED::PFamilyInfo DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper, - const MED::PMeshInfo& theMeshInfo) const + const MED::PMeshInfo& theMeshInfo) const { ostringstream aStr; aStr << "FAM_" << myId; @@ -332,20 +338,20 @@ DriverMED_Family::GetFamilyInfo(const MED::PWrapper& theWrapper, MED::PFamilyInfo anInfo; if(myId == 0 || myGroupAttributVal == 0){ anInfo = theWrapper->CrFamilyInfo(theMeshInfo, - aValue, - myId, - myGroupNames); + aValue, + myId, + myGroupNames); }else{ MED::TStringVector anAttrDescs (1, ""); // 1 attribute with empty description, MED::TIntVector anAttrIds (1, myId); // Id=0, MED::TIntVector anAttrVals (1, myGroupAttributVal); anInfo = theWrapper->CrFamilyInfo(theMeshInfo, - aValue, - myId, - myGroupNames, - anAttrDescs, - anAttrIds, - anAttrVals); + aValue, + myId, + myGroupNames, + anAttrDescs, + anAttrIds, + anAttrVals); } // cout << endl; @@ -413,7 +419,7 @@ void DriverMED_Family::Init (SMESHDS_GroupBase* theGroup) DriverMED_FamilyPtrList DriverMED_Family ::SplitByType (SMESHDS_SubMesh* theSubMesh, - const int theId) + const int theId) { DriverMED_FamilyPtrList aFamilies; DriverMED_FamilyPtr aNodesFamily (new DriverMED_Family); diff --git a/src/DriverMED/DriverMED_Family.h b/src/DriverMED/DriverMED_Family.h index 6ec769bba..f91693a88 100644 --- a/src/DriverMED/DriverMED_Family.h +++ b/src/DriverMED/DriverMED_Family.h @@ -23,7 +23,6 @@ // File : DriverMED_Family.hxx // Author : Julia DOROVSKIKH // Module : SMESH -// $Header$ // #ifndef _INCLUDE_DRIVERMED_FAMILY #define _INCLUDE_DRIVERMED_FAMILY @@ -68,16 +67,16 @@ class MESHDRIVERMED_EXPORT DriverMED_Family static DriverMED_FamilyPtrList MakeFamilies (const SMESHDS_SubMeshPtrMap& theSubMeshes, - const SMESHDS_GroupBasePtrList& theGroups, - const bool doGroupOfNodes, - const bool doGroupOfEdges, - const bool doGroupOfFaces, - const bool doGroupOfVolumes); + const SMESHDS_GroupBasePtrList& theGroups, + const bool doGroupOfNodes, + const bool doGroupOfEdges, + const bool doGroupOfFaces, + const bool doGroupOfVolumes); //! Create TFamilyInfo for this family MED::PFamilyInfo GetFamilyInfo (const MED::PWrapper& theWrapper, - const MED::PMeshInfo& theMeshInfo) const; + const MED::PMeshInfo& theMeshInfo) const; //! Returns elements of this family const ElementsSet& GetElements () const; @@ -99,6 +98,7 @@ class MESHDRIVERMED_EXPORT DriverMED_Family void SetType(const SMDSAbs_ElementType theType); SMDSAbs_ElementType GetType(); + const std::set< SMDSAbs_ElementType >& GetTypes() const; bool MemberOf(std::string theGroupName) const; @@ -113,7 +113,7 @@ class MESHDRIVERMED_EXPORT DriverMED_Family static DriverMED_FamilyPtrList SplitByType(SMESHDS_SubMesh* theSubMesh, - const int theId); + const int theId); /*! Remove from elements, common with , @@ -121,7 +121,7 @@ class MESHDRIVERMED_EXPORT DriverMED_Family Create family from common elements, with combined groups list. */ void Split (DriverMED_FamilyPtr by, - DriverMED_FamilyPtr common); + DriverMED_FamilyPtr common); //! Check, if this family has empty list of elements bool IsEmpty () const; @@ -133,6 +133,7 @@ class MESHDRIVERMED_EXPORT DriverMED_Family ElementsSet myElements; MED::TStringSet myGroupNames; int myGroupAttributVal; + std::set myTypes; // Issue 0020576 }; #endif diff --git a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx index eca1b2ee7..6f93d6cff 100644 --- a/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx +++ b/src/DriverMED/DriverMED_R_SMESHDS_Mesh.cxx @@ -80,9 +80,9 @@ DriverMED_R_SMESHDS_Mesh aResult = DRS_EMPTY; if(TInt aNbMeshes = aMed->GetNbMeshes()){ for(int iMesh = 0; iMesh < aNbMeshes; iMesh++){ - // Reading the MED mesh - //--------------------- - PMeshInfo aMeshInfo = aMed->GetPMeshInfo(iMesh+1); + // Reading the MED mesh + //--------------------- + PMeshInfo aMeshInfo = aMed->GetPMeshInfo(iMesh+1); string aMeshName; if (myMeshId != -1) { @@ -92,76 +92,76 @@ DriverMED_R_SMESHDS_Mesh } else { aMeshName = myMeshName; } - if(MYDEBUG) MESSAGE("Perform - aMeshName : "<GetName()); - if(aMeshName != aMeshInfo->GetName()) continue; + if(MYDEBUG) MESSAGE("Perform - aMeshName : "<GetName()); + if(aMeshName != aMeshInfo->GetName()) continue; aResult = DRS_OK; - //TInt aMeshDim = aMeshInfo->GetDim(); - + //TInt aMeshDim = aMeshInfo->GetDim(); + // Reading MED families to the temporary structure - //------------------------------------------------ - TErr anErr; - TInt aNbFams = aMed->GetNbFamilies(aMeshInfo); + //------------------------------------------------ + TErr anErr; + TInt aNbFams = aMed->GetNbFamilies(aMeshInfo); if(MYDEBUG) MESSAGE("Read " << aNbFams << " families"); for (TInt iFam = 0; iFam < aNbFams; iFam++) { - PFamilyInfo aFamilyInfo = aMed->GetPFamilyInfo(aMeshInfo,iFam+1,&anErr); - if(anErr >= 0){ - TInt aFamId = aFamilyInfo->GetId(); - if(MYDEBUG) MESSAGE("Family " << aFamId << " :"); - + PFamilyInfo aFamilyInfo = aMed->GetPFamilyInfo(aMeshInfo,iFam+1,&anErr); + if(anErr >= 0){ + TInt aFamId = aFamilyInfo->GetId(); + if(MYDEBUG) MESSAGE("Family " << aFamId << " :"); + DriverMED_FamilyPtr aFamily (new DriverMED_Family); - + TInt aNbGrp = aFamilyInfo->GetNbGroup(); if(MYDEBUG) MESSAGE("belong to " << aNbGrp << " groups"); - bool isAttrOk = false; - if(aFamilyInfo->GetNbAttr() == aNbGrp) - isAttrOk = true; + bool isAttrOk = false; + if(aFamilyInfo->GetNbAttr() == aNbGrp) + isAttrOk = true; for (TInt iGr = 0; iGr < aNbGrp; iGr++) { string aGroupName = aFamilyInfo->GetGroupName(iGr); if(isAttrOk){ - TInt anAttrVal = aFamilyInfo->GetAttrVal(iGr); - aFamily->SetGroupAttributVal(anAttrVal); - } - + TInt anAttrVal = aFamilyInfo->GetAttrVal(iGr); + aFamily->SetGroupAttributVal(anAttrVal); + } + if(MYDEBUG) MESSAGE(aGroupName); aFamily->AddGroupName(aGroupName); - + } aFamily->SetId( aFamId ); myFamilies[aFamId] = aFamily; - } + } } - if (aMeshInfo->GetType() == MED::eSTRUCTURE){ - /*bool aRes = */buildMeshGrille(aMed,aMeshInfo); - continue; - } + if (aMeshInfo->GetType() == MED::eSTRUCTURE){ + /*bool aRes = */buildMeshGrille(aMed,aMeshInfo); + continue; + } // Reading MED nodes to the corresponding SMDS structure - //------------------------------------------------------ + //------------------------------------------------------ PNodeInfo aNodeInfo = aMed->GetPNodeInfo(aMeshInfo); - if (!aNodeInfo) { + if (!aNodeInfo) { aResult = DRS_FAIL; - continue; + continue; } - PCoordHelper aCoordHelper = GetCoordHelper(aNodeInfo); + PCoordHelper aCoordHelper = GetCoordHelper(aNodeInfo); - EBooleen anIsNodeNum = aNodeInfo->IsElemNum(); - TInt aNbElems = aNodeInfo->GetNbElem(); - if(MYDEBUG) MESSAGE("Perform - aNodeInfo->GetNbElem() = "<GetNbElem() = "<X()<<", "<Y()<<", "<Z()< TNodeIds; + // Reading pre information about all MED cells + //-------------------------------------------- + typedef MED::TVector TNodeIds; bool takeNumbers = true; // initially we trust the numbers from file - MED::TEntityInfo aEntityInfo = aMed->GetEntityInfo(aMeshInfo); - MED::TEntityInfo::iterator anEntityIter = aEntityInfo.begin(); - for(; anEntityIter != aEntityInfo.end(); anEntityIter++){ - const EEntiteMaillage& anEntity = anEntityIter->first; - if(anEntity == eNOEUD) continue; - // Reading MED cells to the corresponding SMDS structure - //------------------------------------------------------ - const MED::TGeom2Size& aGeom2Size = anEntityIter->second; - MED::TGeom2Size::const_iterator aGeom2SizeIter = aGeom2Size.begin(); - for(; aGeom2SizeIter != aGeom2Size.end(); aGeom2SizeIter++){ - const EGeometrieElement& aGeom = aGeom2SizeIter->first; - - switch(aGeom) { -// case ePOINT1: ## PAL16410 -// break; - case ePOLYGONE: { + MED::TEntityInfo aEntityInfo = aMed->GetEntityInfo(aMeshInfo); + MED::TEntityInfo::iterator anEntityIter = aEntityInfo.begin(); + for(; anEntityIter != aEntityInfo.end(); anEntityIter++){ + const EEntiteMaillage& anEntity = anEntityIter->first; + if(anEntity == eNOEUD) continue; + // Reading MED cells to the corresponding SMDS structure + //------------------------------------------------------ + const MED::TGeom2Size& aGeom2Size = anEntityIter->second; + MED::TGeom2Size::const_iterator aGeom2SizeIter = aGeom2Size.begin(); + for(; aGeom2SizeIter != aGeom2Size.end(); aGeom2SizeIter++){ + const EGeometrieElement& aGeom = aGeom2SizeIter->first; + + switch(aGeom) { +// case ePOINT1: ## PAL16410 +// break; + case ePOLYGONE: { PPolygoneInfo aPolygoneInfo = aMed->GetPPolygoneInfo(aMeshInfo,anEntity,aGeom); EBooleen anIsElemNum = takeNumbers ? aPolygoneInfo->IsElemNum() : eFAUX; - - TInt aNbElem = aPolygoneInfo->GetNbElem(); - for(TInt iElem = 0; iElem < aNbElem; iElem++){ - MED::TCConnSlice aConnSlice = aPolygoneInfo->GetConnSlice(iElem); - TInt aNbConn = aPolygoneInfo->GetNbConn(iElem); - TNodeIds aNodeIds(aNbConn); + + TInt aNbElem = aPolygoneInfo->GetNbElem(); + for(TInt iElem = 0; iElem < aNbElem; iElem++){ + MED::TCConnSlice aConnSlice = aPolygoneInfo->GetConnSlice(iElem); + TInt aNbConn = aPolygoneInfo->GetNbConn(iElem); + TNodeIds aNodeIds(aNbConn); #ifdef _EDF_NODE_IDS_ - if(anIsNodeNum) - for(TInt iConn = 0; iConn < aNbConn; iConn++) - aNodeIds[iConn] = aNodeInfo->GetElemNum(aConnSlice[iConn] - 1); - else - for(TInt iConn = 0; iConn < aNbConn; iConn++) - aNodeIds[iConn] = aConnSlice[iConn]; + if(anIsNodeNum) + for(TInt iConn = 0; iConn < aNbConn; iConn++) + aNodeIds[iConn] = aNodeInfo->GetElemNum(aConnSlice[iConn] - 1); + else + for(TInt iConn = 0; iConn < aNbConn; iConn++) + aNodeIds[iConn] = aConnSlice[iConn]; #else - for(TInt iConn = 0; iConn < aNbConn; iConn++) - aNodeIds[iConn] = aConnSlice[iConn]; + for(TInt iConn = 0; iConn < aNbConn; iConn++) + aNodeIds[iConn] = aConnSlice[iConn]; #endif bool isRenum = false; SMDS_MeshElement* anElement = NULL; @@ -222,12 +222,12 @@ DriverMED_R_SMESHDS_Mesh try{ #endif if(anIsElemNum){ - TInt anElemId = aPolygoneInfo->GetElemNum(iElem); + TInt anElemId = aPolygoneInfo->GetElemNum(iElem); anElement = myMesh->AddPolygonalFaceWithID(aNodeIds,anElemId); - } + } if(!anElement){ - std::vector aNodes(aNbConn); - for(TInt iConn = 0; iConn < aNbConn; iConn++) + vector aNodes(aNbConn); + for(TInt iConn = 0; iConn < aNbConn; iConn++) aNodes[iConn] = FindNode(myMesh,aNodeIds[iConn]); anElement = myMesh->AddPolygonalFace(aNodes); isRenum = anIsElemNum; @@ -257,107 +257,107 @@ DriverMED_R_SMESHDS_Mesh } } break; - } - case ePOLYEDRE: { + } + case ePOLYEDRE: { PPolyedreInfo aPolyedreInfo = aMed->GetPPolyedreInfo(aMeshInfo,anEntity,aGeom); EBooleen anIsElemNum = takeNumbers ? aPolyedreInfo->IsElemNum() : eFAUX; - TInt aNbElem = aPolyedreInfo->GetNbElem(); - for(TInt iElem = 0; iElem < aNbElem; iElem++){ - MED::TCConnSliceArr aConnSliceArr = aPolyedreInfo->GetConnSliceArr(iElem); - TInt aNbFaces = aConnSliceArr.size(); + TInt aNbElem = aPolyedreInfo->GetNbElem(); + for(TInt iElem = 0; iElem < aNbElem; iElem++){ + MED::TCConnSliceArr aConnSliceArr = aPolyedreInfo->GetConnSliceArr(iElem); + TInt aNbFaces = aConnSliceArr.size(); typedef MED::TVector TQuantities; - TQuantities aQuantities(aNbFaces); - TInt aNbNodes = aPolyedreInfo->GetNbNodes(iElem); - TNodeIds aNodeIds(aNbNodes); - for(TInt iFace = 0, iNode = 0; iFace < aNbFaces; iFace++){ - MED::TCConnSlice aConnSlice = aConnSliceArr[iFace]; - TInt aNbConn = aConnSlice.size(); + TQuantities aQuantities(aNbFaces); + TInt aNbNodes = aPolyedreInfo->GetNbNodes(iElem); + TNodeIds aNodeIds(aNbNodes); + for(TInt iFace = 0, iNode = 0; iFace < aNbFaces; iFace++){ + MED::TCConnSlice aConnSlice = aConnSliceArr[iFace]; + TInt aNbConn = aConnSlice.size(); aQuantities[iFace] = aNbConn; #ifdef _EDF_NODE_IDS_ - if(anIsNodeNum) - for(TInt iConn = 0; iConn < aNbConn; iConn++) - aNodeIds[iNode++] = aNodeInfo->GetElemNum(aConnSlice[iConn] - 1); - else - for(TInt iConn = 0; iConn < aNbConn; iConn++) - aNodeIds[iNode++] = aConnSlice[iConn]; + if(anIsNodeNum) + for(TInt iConn = 0; iConn < aNbConn; iConn++) + aNodeIds[iNode++] = aNodeInfo->GetElemNum(aConnSlice[iConn] - 1); + else + for(TInt iConn = 0; iConn < aNbConn; iConn++) + aNodeIds[iNode++] = aConnSlice[iConn]; #else - for(TInt iConn = 0; iConn < aNbConn; iConn++) - aNodeIds[iNode++] = aConnSlice[iConn]; -#endif - } - - bool isRenum = false; - SMDS_MeshElement* anElement = NULL; - TInt aFamNum = aPolyedreInfo->GetFamNum(iElem); - + for(TInt iConn = 0; iConn < aNbConn; iConn++) + aNodeIds[iNode++] = aConnSlice[iConn]; +#endif + } + + bool isRenum = false; + SMDS_MeshElement* anElement = NULL; + TInt aFamNum = aPolyedreInfo->GetFamNum(iElem); + #ifndef _DEXCEPT_ - try{ + try{ #endif - if(anIsElemNum){ - TInt anElemId = aPolyedreInfo->GetElemNum(iElem); - anElement = myMesh->AddPolyhedralVolumeWithID(aNodeIds,aQuantities,anElemId); - } - if(!anElement){ - std::vector aNodes(aNbNodes); - for(TInt iConn = 0; iConn < aNbNodes; iConn++) - aNodes[iConn] = FindNode(myMesh,aNodeIds[iConn]); - anElement = myMesh->AddPolyhedralVolume(aNodes,aQuantities); - isRenum = anIsElemNum; - } + if(anIsElemNum){ + TInt anElemId = aPolyedreInfo->GetElemNum(iElem); + anElement = myMesh->AddPolyhedralVolumeWithID(aNodeIds,aQuantities,anElemId); + } + if(!anElement){ + vector aNodes(aNbNodes); + for(TInt iConn = 0; iConn < aNbNodes; iConn++) + aNodes[iConn] = FindNode(myMesh,aNodeIds[iConn]); + anElement = myMesh->AddPolyhedralVolume(aNodes,aQuantities); + isRenum = anIsElemNum; + } #ifndef _DEXCEPT_ - }catch(const std::exception& exc){ - aResult = DRS_FAIL; - }catch(...){ - aResult = DRS_FAIL; - } -#endif - if(!anElement){ - aResult = DRS_WARN_SKIP_ELEM; - }else{ - if(isRenum){ - anIsElemNum = eFAUX; - takeNumbers = false; - if (aResult < DRS_WARN_RENUMBER) - aResult = DRS_WARN_RENUMBER; - } - if ( checkFamilyID ( aFamily, aFamNum )) { - // Save reference to this element from its family - aFamily->AddElement(anElement); - aFamily->SetType(anElement->GetType()); - } - } - } + }catch(const std::exception& exc){ + aResult = DRS_FAIL; + }catch(...){ + aResult = DRS_FAIL; + } +#endif + if(!anElement){ + aResult = DRS_WARN_SKIP_ELEM; + }else{ + if(isRenum){ + anIsElemNum = eFAUX; + takeNumbers = false; + if (aResult < DRS_WARN_RENUMBER) + aResult = DRS_WARN_RENUMBER; + } + if ( checkFamilyID ( aFamily, aFamNum )) { + // Save reference to this element from its family + aFamily->AddElement(anElement); + aFamily->SetType(anElement->GetType()); + } + } + } break; } - default: { + default: { PCellInfo aCellInfo = aMed->GetPCellInfo(aMeshInfo,anEntity,aGeom); EBooleen anIsElemNum = takeNumbers ? aCellInfo->IsElemNum() : eFAUX; TInt aNbElems = aCellInfo->GetNbElem(); if(MYDEBUG) MESSAGE("Perform - anEntity = "<& types = aFamily->GetTypes(); + set< SMDSAbs_ElementType >::const_iterator type = types.begin(); + for ( ; type != types.end(); ++type ) + { + TNameAndType aNameAndType = make_pair( *aGrNamesIter, *type ); if ( aResGroupNames.insert( aNameAndType ).second ) { aResult.push_back( aNameAndType ); } -// } + } } } @@ -793,21 +795,21 @@ void DriverMED_R_SMESHDS_Mesh::GetGroup(SMESHDS_Group* theGroup) for (; aFamsIter != myFamilies.end(); aFamsIter++) { DriverMED_FamilyPtr aFamily = (*aFamsIter).second; - if (aFamily->GetType() == theGroup->GetType() && aFamily->MemberOf(aGroupName)) + if (aFamily->GetTypes().count( theGroup->GetType() ) && aFamily->MemberOf(aGroupName)) { const set& anElements = aFamily->GetElements(); set::const_iterator anElemsIter = anElements.begin(); - const SMDS_MeshElement * element = 0; for (; anElemsIter != anElements.end(); anElemsIter++) { - element = *anElemsIter; - theGroup->SMDSGroup().Add(element); - int aGroupAttrVal = aFamily->GetGroupAttributVal(); - if( aGroupAttrVal != 0) - theGroup->SetColorGroup(aGroupAttrVal); + const SMDS_MeshElement * element = *anElemsIter; + if ( element->GetType() == theGroup->GetType() ) // Issue 0020576 + theGroup->SMDSGroup().Add(element); } - if ( element ) - theGroup->SetType( theGroup->SMDSGroup().GetType() ); + int aGroupAttrVal = aFamily->GetGroupAttributVal(); + if( aGroupAttrVal != 0) + theGroup->SetColorGroup(aGroupAttrVal); +// if ( element ) -- Issue 0020576 +// theGroup->SetType( theGroup->SMDSGroup().GetType() ); } } } @@ -918,7 +920,7 @@ bool DriverMED_R_SMESHDS_Mesh::checkFamilyID(DriverMED_FamilyPtr & aFamily, int * \return TRUE, if successfully. Else FALSE */ bool DriverMED_R_SMESHDS_Mesh::buildMeshGrille(const MED::PWrapper& theWrapper, - const MED::PMeshInfo& theMeshInfo) + const MED::PMeshInfo& theMeshInfo) { bool res = true; @@ -938,10 +940,10 @@ bool DriverMED_R_SMESHDS_Mesh::buildMeshGrille(const MED::PWrapper& theWrapper, if((aGrilleInfo->myFamNumNode).size() > 0){ TInt aFamNum = aGrilleInfo->GetFamNumNode(iNode); if ( checkFamilyID ( aFamily, aFamNum )) - { - aFamily->AddElement(aNode); - aFamily->SetType(SMDSAbs_Node); - } + { + aFamily->AddElement(aNode); + aFamily->SetType(SMDSAbs_Node); + } } } @@ -953,38 +955,38 @@ bool DriverMED_R_SMESHDS_Mesh::buildMeshGrille(const MED::PWrapper& theWrapper, switch(aGrilleInfo->GetGeom()){ case MED::eSEG2: if(aNodeIds.size() != 2){ - res = false; - EXCEPTION(runtime_error,"buildMeshGrille Error. Incorrect size of ids 2!="<