From: eap Date: Thu, 8 Sep 2016 16:15:49 +0000 (+0300) Subject: Fix regression SALOME_TESTS/Grids/smesh/viscous_layers_00/A6 X-Git-Tag: V8_1_0rc1~3 X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=commitdiff_plain;h=560d5a794fdbeaddee2ff2716289b3b66c70ab5d;ds=sidebyside Fix regression SALOME_TESTS/Grids/smesh/viscous_layers_00/A6 --- diff --git a/src/StdMeshers/StdMeshers_ViscousLayers.cxx b/src/StdMeshers/StdMeshers_ViscousLayers.cxx index d6fabf343..1ebf95af9 100644 --- a/src/StdMeshers/StdMeshers_ViscousLayers.cxx +++ b/src/StdMeshers/StdMeshers_ViscousLayers.cxx @@ -95,7 +95,7 @@ #include #ifdef _DEBUG_ -#define __myDEBUG +//#define __myDEBUG //#define __NOT_INVALIDATE_BAD_SMOOTH //#define __NODES_AT_POS #endif @@ -3395,11 +3395,16 @@ bool _ViscousBuilder::setEdgeData(_LayerEdge& edge, if ( nbOkNorms == 0 ) return error(SMESH_Comment("Can't get normal to node ") << node->GetID(), data._index); + if ( totalNbFaces >= 3 ) + { + edge._normal = getNormalByOffset( &edge, face2Norm, totalNbFaces, fromVonF ); + } + if ( edge._normal.Modulus() < 1e-3 && nbOkNorms > 1 ) { // opposite normals, re-get normals at shifted positions (IPAL 52426) edge._normal.SetCoord( 0,0,0 ); - for ( int iF = 0; iF < totalNbFaces; ++iF ) + for ( int iF = 0; iF < totalNbFaces - fromVonF; ++iF ) { const TopoDS_Face& F = face2Norm[iF].first; geomNorm = getFaceNormal( node, F, helper, normOK, /*shiftInside=*/true ); @@ -3410,11 +3415,6 @@ bool _ViscousBuilder::setEdgeData(_LayerEdge& edge, edge._normal += face2Norm[ iF ].second; } } - - if ( totalNbFaces >= 3 ) - { - edge._normal = getNormalByOffset( &edge, face2Norm, totalNbFaces, fromVonF ); - } } } else // !useGeometry - get _normal using surrounding mesh faces