0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids

Fix fillAncestorsMap(theShape) for the case if a sub-shape of
   theShape is not in _mapAncestors
This commit is contained in:
eap 2010-09-17 05:35:42 +00:00
parent c72cfb82fd
commit e0baca518c

View File

@ -1615,6 +1615,7 @@ void SMESH_Mesh::fillAncestorsMap(const TopoDS_Shape& theShape)
for ( desType = TopAbs_VERTEX; desType >= memberType; desType-- ) for ( desType = TopAbs_VERTEX; desType >= memberType; desType-- )
for (TopExp_Explorer des( theShape, TopAbs_ShapeEnum( desType )); des.More(); des.Next()) for (TopExp_Explorer des( theShape, TopAbs_ShapeEnum( desType )); des.More(); des.Next())
{ {
if ( !_mapAncestors.Contains( des.Current() )) continue;// issue 0020982
TopTools_ListOfShape& ancList = _mapAncestors.ChangeFromKey( des.Current() ); TopTools_ListOfShape& ancList = _mapAncestors.ChangeFromKey( des.Current() );
TopTools_ListIteratorOfListOfShape ancIt (ancList); TopTools_ListIteratorOfListOfShape ancIt (ancList);
while ( ancIt.More() && ancIt.Value().ShapeType() >= memberType ) while ( ancIt.More() && ancIt.Value().ShapeType() >= memberType )