From 469f93876600c610b2e6cd3e6527ca139f985e51 Mon Sep 17 00:00:00 2001 From: eap Date: Wed, 20 Feb 2013 16:06:58 +0000 Subject: [PATCH] 0022130: EDF 2579 SMESH: Issue with Viscous Layer fix detection of the closed EDGE --- src/StdMeshers/StdMeshers_ViscousLayers2D.cxx | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx b/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx index 4e4d0ed8e..af1dcae60 100644 --- a/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx +++ b/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx @@ -442,7 +442,7 @@ StdMeshers_ViscousLayers2D::Compute(SMESH_Mesh& theMesh, theMesh.GetSubMesh( theFace )->GetComputeError() = error; else if ( !pm ) pm.reset( new SMESH_ProxyMesh( theMesh )); - if ( getenv("ONLY_VL2D")) + if ( getenv("__ONLY__VL2D__")) pm.reset(); } else @@ -1834,13 +1834,14 @@ bool _ViscousBuilder2D::refine() normPar[ i - L._firstPntInd ] = ( points[i].normParam - normF ) / normDist; // Create layers of faces - + bool hasLeftNode = ( !L._leftLine->_rightNodes.empty() && leftEdgeShared ); bool hasRightNode = ( !L._rightLine->_leftNodes.empty() && rightEdgeShared ); bool hasOwnLeftNode = ( !L._leftNodes.empty() ); bool hasOwnRightNode = ( !L._rightNodes.empty() ); + bool isClosedEdge = ( outerNodes.front() == outerNodes.back() ); size_t iS, - iN0 = ( hasLeftNode || hasOwnLeftNode || _polyLineVec.size() == 1 ), + iN0 = ( hasLeftNode || hasOwnLeftNode || isClosedEdge ), nbN = innerNodes.size() - ( hasRightNode || hasOwnRightNode ); L._leftNodes .reserve( _hyp->GetNumberLayers() ); L._rightNodes.reserve( _hyp->GetNumberLayers() ); @@ -1872,7 +1873,7 @@ bool _ViscousBuilder2D::refine() else if ( hasLeftNode ) innerNodes.front() = L._leftLine->_rightNodes[ iF ]; if ( hasOwnRightNode ) innerNodes.back() = L._rightNodes[ iF ]; else if ( hasRightNode ) innerNodes.back() = L._rightLine->_leftNodes[ iF ]; - if ( _polyLineVec.size() == 1 ) innerNodes.front() = innerNodes.back(); // circle + if ( isClosedEdge ) innerNodes.front() = innerNodes.back(); // circle if ( !hasOwnLeftNode ) L._leftNodes.push_back( innerNodes.front() ); if ( !hasOwnRightNode ) L._rightNodes.push_back( innerNodes.back() ); -- 2.39.2