From 479bf562b6aeea10f3f9a80323ebaa63a522b5be Mon Sep 17 00:00:00 2001 From: eap Date: Tue, 15 Apr 2014 13:11:33 +0400 Subject: [PATCH] 22539: [CEA 1126] Quadrangle mapping produces a non conform mesh Add warning on a bad quality quad --- src/StdMeshers/StdMeshers_Quadrangle_2D.cxx | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx b/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx index a0e1d0610..1bb30e342 100644 --- a/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx +++ b/src/StdMeshers/StdMeshers_Quadrangle_2D.cxx @@ -648,7 +648,16 @@ bool StdMeshers_Quadrangle_2D::computeQuadDominant(SMESH_Mesh& aMesh, else { if ( SMDS_MeshFace* face = myHelper->AddFace(a, b, d, c)) + { meshDS->SetMeshElementOnShape(face, geomFaceID); + SMESH_ComputeErrorPtr& err = aMesh.GetSubMesh( aFace )->GetComputeError(); + if ( !err || err->IsOK() || err->myName < COMPERR_WARNING ) + { + err.reset( new SMESH_ComputeError( COMPERR_WARNING, + "Bad quality quad created")); + err->myBadElements.push_back( face ); + } + } --i; } } @@ -820,7 +829,16 @@ bool StdMeshers_Quadrangle_2D::computeQuadDominant(SMESH_Mesh& aMesh, else { if ( SMDS_MeshFace* face = myHelper->AddFace(a, b, d, c)) + { meshDS->SetMeshElementOnShape(face, geomFaceID); + SMESH_ComputeErrorPtr& err = aMesh.GetSubMesh( aFace )->GetComputeError(); + if ( !err || err->IsOK() || err->myName < COMPERR_WARNING ) + { + err.reset( new SMESH_ComputeError( COMPERR_WARNING, + "Bad quality quad created")); + err->myBadElements.push_back( face ); + } + } --i; } }