X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_ViscousLayers2D.cxx;h=e2e26dd383546b39c3973a5e268889207bda9ce4;hb=7b5176ec4d66e7ff5d89e777c56aba87126c5090;hp=4e4d0ed8e28e716e8e9c84a69667af733c7ecac9;hpb=1067ffa6e7e5c394e3a1b17219d8b355a57607cd;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx b/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx index 4e4d0ed8e..e2e26dd38 100644 --- a/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx +++ b/src/StdMeshers/StdMeshers_ViscousLayers2D.cxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2013 CEA/DEN, EDF R&D, OPEN CASCADE // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -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() );