From 7643656ed3347076bc06b42e34495dc703d1003e Mon Sep 17 00:00:00 2001 From: eap Date: Mon, 28 Jan 2013 08:29:36 +0000 Subject: [PATCH] 0021893: EDF 2133 SMESH : Improvement of 3D extrusion algorithm Use SMESH_MesherHelper::IsSameElemGeometry() --- src/StdMeshers/StdMeshers_Hexa_3D.cxx | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/StdMeshers/StdMeshers_Hexa_3D.cxx b/src/StdMeshers/StdMeshers_Hexa_3D.cxx index 92f00af3a..cc33934e1 100644 --- a/src/StdMeshers/StdMeshers_Hexa_3D.cxx +++ b/src/StdMeshers/StdMeshers_Hexa_3D.cxx @@ -295,7 +295,7 @@ namespace //============================================================================= bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape)// throw(SALOME_Exception) + const TopoDS_Shape & aShape) { // PAL14921. Enable catching std::bad_alloc and Standard_OutOfMemory outside //Unexpect aCatch(SalomeException); @@ -371,20 +371,12 @@ bool StdMeshers_Hexa_3D::Compute(SMESH_Mesh & aMesh, for ( int i = 0; i < 6; ++i ) { const TopoDS_Face& sideF = aCubeSide[i]._quad->face; - if ( SMESHDS_SubMesh* smDS = meshDS->MeshElements( sideF )) + if ( !SMESH_MesherHelper::IsSameElemGeometry( meshDS->MeshElements( sideF ), + SMDSGeom_QUADRANGLE, + /*nullSubMeshRes=*/false )) { - bool isAllQuad = true; - SMDS_ElemIteratorPtr fIt = smDS->GetElements(); - while ( fIt->more() && isAllQuad ) - { - const SMDS_MeshElement* f = fIt->next(); - isAllQuad = ( f->NbCornerNodes() == 4 ); - } - if ( !isAllQuad ) - { - SMESH_ComputeErrorPtr err = ComputePentahedralMesh(aMesh, aShape, proxymesh.get()); - return error( err ); - } + SMESH_ComputeErrorPtr err = ComputePentahedralMesh(aMesh, aShape, proxymesh.get()); + return error( err ); } } } -- 2.39.2