PAL12470: Cannot use boolean operations on COMPOUNDs and COMPSOLIDs. Fix FUSE regression.

This commit is contained in:
jfa 2006-08-30 06:24:58 +00:00
parent 6dba78d6b9
commit 5394241548

View File

@ -175,21 +175,11 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const
// perform FUSE operation
else if (aType == BOOLEAN_FUSE) {
// check shapes to provide special processing for compounds and compsolids
if (aShape1.ShapeType() == TopAbs_COMPOUND ||
aShape1.ShapeType() == TopAbs_COMPSOLID ||
aShape2.ShapeType() == TopAbs_COMPOUND ||
aShape2.ShapeType() == TopAbs_COMPSOLID) {
// at least one of arguments is complex
StdFail_NotDone::Raise("Fuse operation aborted: one of arguments is a complex shape");
} else {
// simple arguments
BRepAlgoAPI_Fuse BO (aShape1, aShape2);
if (!BO.IsDone()) {
StdFail_NotDone::Raise("Fuse operation can not be performed on the given shapes");
}
aShape = BO.Shape();
BRepAlgoAPI_Fuse BO (aShape1, aShape2);
if (!BO.IsDone()) {
StdFail_NotDone::Raise("Fuse operation can not be performed on the given shapes");
}
aShape = BO.Shape();
}
// perform SECTION operation