PAL8196. Fix GetAlgo() for the case with the same algo on several ancestors

This commit is contained in:
eap 2005-06-24 11:01:15 +00:00
parent 65854639b9
commit 72b3cba035

View File

@ -602,9 +602,18 @@ SMESH_Algo *SMESH_Gen::GetAlgo(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape)
list <const SMESHDS_Hypothesis * > algoList;
aMesh.GetHypotheses( aShape, filter, algoList, true );
if (algoList.size() != 1 )
if ( algoList.empty() )
return NULL;
if (algoList.size() > 1 ) { // check if there is one algo several times
list <const SMESHDS_Hypothesis * >::iterator algo = algoList.begin();
for ( ; algo != algoList.end(); ++algo )
if ( (*algo) != algoList.front() &&
(*algo)->GetName() != algoList.front()->GetName() )
return NULL;
}
return const_cast<SMESH_Algo*> ( static_cast<const SMESH_Algo* >( algoList.front() ));
}