Mantis issue 0022009: [CEA 730] MakePartition of a solid by an empty compound returns an error

This commit is contained in:
jfa 2012-12-12 06:57:26 +00:00
parent 26b3f059e3
commit 27ffbb5d92

View File

@ -147,15 +147,10 @@ Standard_Integer GEOMImpl_PartitionDriver::Execute(TFunction_Logbook& log) const
if (aShape_i.IsNull()) {
Standard_NullObject::Raise("In Partition a shape is null");
}
//
//BRepBuilderAPI_Copy aCopyTool (aShape_i);
TopoDS_Shape aShape_i_copy;
TNaming_CopyShape::CopyTool(aShape_i, aMapTShapes, aShape_i_copy);
//if (aCopyTool.IsDone())
// aShape_i_copy = aCopyTool.Shape();
//else
// Standard_NullObject::Raise("Bad shape detected");
//
// fill aCopyMap for history
TopTools_IndexedMapOfShape aShape_i_inds;
TopTools_IndexedMapOfShape aShape_i_copy_inds;
@ -384,7 +379,13 @@ Standard_Integer GEOMImpl_PartitionDriver::Execute(TFunction_Logbook& log) const
}
aShape = PS.Shape();
if (aShape.IsNull()) return 0;
if (aShape.IsNull()) {
// Mantis issue 22009
if (PS.ErrorStatus() == 10 && PS.Tools().Extent() == 0 && PS.Shapes().Extent() == 1)
aShape = PS.Shapes().First();
else
return 0;
}
//Alternative case to check not valid partition IPAL21418
TopoDS_Iterator It (aShape, Standard_True, Standard_True);