From 8b786444b7995095756c154bdc97842b75255a28 Mon Sep 17 00:00:00 2001 From: eap Date: Tue, 29 Apr 2014 20:33:11 +0400 Subject: [PATCH] SALOME_TESTS/Grids/smesh/2D_mesh_QuadranglePreference_00/A1 Fix for degenerated EDGEs --- src/StdMeshers/StdMeshers_Quadrangle_2D.cxx | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx b/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx index f6a7e2379..1aee3df7e 100644 --- a/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx +++ b/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx @@ -1138,14 +1138,25 @@ FaceQuadStruct::Ptr StdMeshers_Quadrangle_2D::CheckNbEdges(SMESH_Mesh & do { const TopoDS_Edge& edge = *edgeIt; - if ( SMESH_Algo::isDegenerated( edge ) && myNeedSmooth ) + nextSideVReached = nextSideV.IsSame( myHelper->IthVertex( 1, edge )); + if ( SMESH_Algo::isDegenerated( edge )) { - // no side on a degenerated EDGE + if ( !myNeedSmooth ) // need to make a side on a degen edge + { + if ( sideEdges.empty() ) + { + sideEdges.push_back( edge ); + ++nbUsedDegen; + } + else + { + break; + } + } } else { sideEdges.push_back( edge ); - nextSideVReached = nextSideV.IsSame( myHelper->IthVertex( 1, edge )); } ++edgeIt; } -- 2.30.2