fix failures of non-regression tests

Perform a thorough analysis of mesh on FACEs even in case of 1 SOLID
This commit is contained in:
eap 2013-02-27 13:21:20 +00:00
parent ed66a53f3e
commit e453ca2b46

View File

@ -458,14 +458,6 @@ bool StdMeshers_Prism_3D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& theSh
if ( nbSolids < 1 ) if ( nbSolids < 1 )
return true; return true;
Prism_3D::TPrismTopo prism;
if ( nbSolids == 1 )
{
return ( initPrism( prism, TopExp_Explorer( theShape, TopAbs_SOLID ).Current() ) &&
compute( prism ));
}
TopTools_IndexedDataMapOfShapeListOfShape faceToSolids; TopTools_IndexedDataMapOfShapeListOfShape faceToSolids;
TopExp::MapShapesAndAncestors( theShape, TopAbs_FACE, TopAbs_SOLID, faceToSolids ); TopExp::MapShapesAndAncestors( theShape, TopAbs_FACE, TopAbs_SOLID, faceToSolids );
@ -492,8 +484,15 @@ bool StdMeshers_Prism_3D::Compute(SMESH_Mesh& theMesh, const TopoDS_Shape& theSh
// notQuadMeshedFaces are of highest priority // notQuadMeshedFaces are of highest priority
meshedFaces.splice( meshedFaces.begin(), notQuadMeshedFaces ); meshedFaces.splice( meshedFaces.begin(), notQuadMeshedFaces );
// if ( meshedFaces.empty() ) Prism_3D::TPrismTopo prism;
// return error( COMPERR_BAD_INPUT_MESH, "No meshed source faces found" );
if ( nbSolids == 1 )
{
if ( !meshedFaces.empty() )
prism.myBottom = meshedFaces.front();
return ( initPrism( prism, TopExp_Explorer( theShape, TopAbs_SOLID ).Current() ) &&
compute( prism ));
}
TopTools_MapOfShape meshedSolids; TopTools_MapOfShape meshedSolids;
list< Prism_3D::TPrismTopo > meshedPrism; list< Prism_3D::TPrismTopo > meshedPrism;