Mantis issue 0021934: Delete the internal faces of an object. Correction to avoid errors on not suitable arguments.

This commit is contained in:
jfa 2013-06-24 11:47:08 +00:00
parent 8c5cdd2d44
commit 182542382e

View File

@ -458,9 +458,7 @@ Standard_Boolean GEOMImpl_HealingDriver::RemoveInternalFaces (const TopoDS_Shape
aTool.SetShape(theOriginalShape); aTool.SetShape(theOriginalShape);
aTool.Perform(); aTool.Perform();
if (aTool.ErrorStatus() != 0) if (aTool.ErrorStatus() == 0) { // OK
StdFail_NotDone::Raise("GEOMAlgo_RemoverWebs failed!");
theOutShape = aTool.Result(); theOutShape = aTool.Result();
// as GEOMAlgo_RemoverWebs always produces compound, lets simplify it // as GEOMAlgo_RemoverWebs always produces compound, lets simplify it
@ -470,6 +468,11 @@ Standard_Boolean GEOMImpl_HealingDriver::RemoveInternalFaces (const TopoDS_Shape
if (listShapeRes.Extent() == 1) { if (listShapeRes.Extent() == 1) {
theOutShape = listShapeRes.First(); theOutShape = listShapeRes.First();
} }
}
else if (aTool.ErrorStatus() == 11) // invalid argument (contains non-solids), do nothing
theOutShape = theOriginalShape;
else // error
StdFail_NotDone::Raise("GEOMAlgo_RemoverWebs failed!");
return Standard_True; return Standard_True;
} }