From: eap Date: Mon, 5 Sep 2011 07:16:47 +0000 (+0000) Subject: Fix error message for the case of adjacent faces with triangular elements X-Git-Tag: V6_4_0a1~80 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=efd5d0e9d1be513b774706d96055e4c674bc19a3;p=modules%2Fsmesh.git Fix error message for the case of adjacent faces with triangular elements --- diff --git a/src/StdMeshers/StdMeshers_Prism_3D.cxx b/src/StdMeshers/StdMeshers_Prism_3D.cxx index e0cbdbaa6..af0185cde 100644 --- a/src/StdMeshers/StdMeshers_Prism_3D.cxx +++ b/src/StdMeshers/StdMeshers_Prism_3D.cxx @@ -1329,6 +1329,14 @@ bool StdMeshers_PrismAsBlock::Init(SMESH_MesherHelper* helper, if ( !GetWallFaces( Mesh(), shape3D, botSM->GetSubShape(), orderedEdges, nbEInW, wallFaces)) return error(COMPERR_BAD_SHAPE, "Can't find side faces"); + // check that the found top and bottom faces are opposite + { + for (TopExp_Explorer edge(botSM->GetSubShape(), TopAbs_EDGE); edge.More(); edge.Next()) + if ( helper->IsSubShape( edge.Current(), topSM->GetSubShape() )) + return error(notQuadGeomSubMesh.empty() ? COMPERR_BAD_INPUT_MESH : COMPERR_BAD_SHAPE, + "Non-quadrilateral faces are not opposite"); + } + // Protect from a distorted block (test 3D_mesh_HEXA3D/B7 on 32bit platform) // check that all wall faces have an edge common with the top face {