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,22 +175,12 @@ Standard_Integer GEOMImpl_BooleanDriver::Execute(TFunction_Logbook& log) const
// perform FUSE operation // perform FUSE operation
else if (aType == BOOLEAN_FUSE) { 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); BRepAlgoAPI_Fuse BO (aShape1, aShape2);
if (!BO.IsDone()) { if (!BO.IsDone()) {
StdFail_NotDone::Raise("Fuse operation can not be performed on the given shapes"); StdFail_NotDone::Raise("Fuse operation can not be performed on the given shapes");
} }
aShape = BO.Shape(); aShape = BO.Shape();
} }
}
// perform SECTION operation // perform SECTION operation
else if (aType == BOOLEAN_SECTION) { else if (aType == BOOLEAN_SECTION) {