From 20570dd75efb05d14d74c9c845bbd680bab852f0 Mon Sep 17 00:00:00 2001 From: vsr Date: Thu, 27 Jan 2011 10:14:07 +0000 Subject: [PATCH] 0020943: EDF 1463 SMESH: additional fonctionnality to the feature 20749 Fix "bare faces" control problem --- src/Controls/SMESH_Controls.cxx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/Controls/SMESH_Controls.cxx b/src/Controls/SMESH_Controls.cxx index 42b5b6a1a..b3f467436 100644 --- a/src/Controls/SMESH_Controls.cxx +++ b/src/Controls/SMESH_Controls.cxx @@ -1956,11 +1956,13 @@ bool BareBorderVolume::IsSatisfy(long theElementId ) bool BareBorderFace::IsSatisfy(long theElementId ) { + bool ok = false; if ( const SMDS_MeshElement* face = myMesh->FindElement(theElementId)) + { if ( face->GetType() == SMDSAbs_Face ) { int nbN = face->NbCornerNodes(); - for ( int i = 0; i < nbN; ++i ) + for ( int i = 0; i < nbN && !ok; ++i ) { // check if a link is shared by another face const SMDS_MeshNode* n1 = face->GetNode( i ); @@ -1979,11 +1981,12 @@ bool BareBorderFace::IsSatisfy(long theElementId ) myLinkNodes[1] = n2; if ( face->IsQuadratic() ) myLinkNodes[2] = face->GetNode( i+nbN ); - return !myMesh->FindElement( myLinkNodes, SMDSAbs_Edge, /*noMedium=*/false); + ok = !myMesh->FindElement( myLinkNodes, SMDSAbs_Edge, /*noMedium=*/false); } } } - return false; + } + return ok; } /* -- 2.39.2