0023419: EDF 14260 - Problem of fusion

This commit is contained in:
jfa 2017-03-10 13:54:30 +03:00
parent 31792db89f
commit 0c782492c0

View File

@ -373,6 +373,7 @@ TopoDS_Shape GEOMImpl_BooleanDriver::makeCompoundShellFromFaces
return aResult;
}
//=======================================================================
//function : performOperation
//purpose :
@ -416,7 +417,8 @@ TopoDS_Shape GEOMImpl_BooleanDriver::performOperation
// resulting from COMMON on two non-intersecting shapes.
if (aStepResult.ShapeType() == TopAbs_COMPOUND) {
#if OCC_VERSION_MAJOR >= 7
if (aValue1.ShapeType() == TopAbs_FACE && aValue2.ShapeType() == TopAbs_FACE) {
if ((aValue1.ShapeType() == TopAbs_FACE || aValue1.ShapeType() == TopAbs_SHELL) &&
(aValue2.ShapeType() == TopAbs_FACE || aValue2.ShapeType() == TopAbs_SHELL)) {
aStepResult = makeCompoundShellFromFaces(aStepResult);
}
#endif
@ -478,7 +480,8 @@ TopoDS_Shape GEOMImpl_BooleanDriver::performOperation
// resulting from CUT of parts
if (aCut.ShapeType() == TopAbs_COMPOUND) {
#if OCC_VERSION_MAJOR >= 7
if (itSub1.Value().ShapeType() == TopAbs_FACE) {
if (itSub1.Value().ShapeType() == TopAbs_FACE ||
itSub1.Value().ShapeType() == TopAbs_SHELL) {
aCut = makeCompoundShellFromFaces(aCut);
}
#endif
@ -521,7 +524,8 @@ TopoDS_Shape GEOMImpl_BooleanDriver::performOperation
TopTools_ListIteratorOfListOfShape itSub2 (listShape2);
for (; itSub2.More(); itSub2.Next()) {
TopoDS_Shape aValue2 = itSub2.Value();
if (aValue1.ShapeType() == TopAbs_FACE && aValue2.ShapeType() == TopAbs_FACE) {
if ((aValue1.ShapeType() == TopAbs_FACE || aValue1.ShapeType() == TopAbs_SHELL) &&
(aValue2.ShapeType() == TopAbs_FACE || aValue2.ShapeType() == TopAbs_SHELL)) {
isFaces = Standard_True;
}
}