Regression of doc/salome/examples/prism_3d_algo.py

Protection against an infinite loop in StdMeshers_Prism_3D::getWallFaces()
This commit is contained in:
eap 2014-09-25 18:01:50 +04:00
parent eb22cf46cb
commit 54ea8ad8bb

View File

@ -987,6 +987,7 @@ bool StdMeshers_Prism_3D::getWallFaces( Prism_3D::TPrismTopo & thePrism,
// find wall FACEs adjacent to each of thePrism.myWallQuads by the top side EDGE
if ( totalNbFaces - faceMap.Extent() > 2 )
{
const int nbFoundWalls = faceMap.Extent();
for ( size_t i = 0; i < thePrism.myWallQuads.size(); ++i )
{
StdMeshers_FaceSidePtr topSide = thePrism.myWallQuads[i].back()->side[ QUAD_TOP_SIDE ];
@ -1013,6 +1014,9 @@ bool StdMeshers_Prism_3D::getWallFaces( Prism_3D::TPrismTopo & thePrism,
}
}
}
if ( nbFoundWalls == faceMap.Extent() )
return toSM( error("Failed to find wall faces"));
}
} // while ( totalNbFaces - faceMap.Extent() > 2 )