mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0025721: Wrong result obtained by Common operator.
Changes: class BOPTools_Set method: void BOPTools_Set::Add(const TopoDS_Shape& theS, const TopAbs_ShapeEnum theType) has been changed. The treatment of INTERNAL edges has been added. Added test case bugs/modalg_5/bug25721
This commit is contained in:
@@ -157,6 +157,7 @@ void BOPTools_Set::Add(const TopoDS_Shape& theS,
|
||||
const TopAbs_ShapeEnum theType)
|
||||
{
|
||||
Standard_Integer aId, aIdN;
|
||||
TopAbs_Orientation aOr;
|
||||
TopExp_Explorer aExp;
|
||||
//
|
||||
myShape=theS;
|
||||
@@ -173,7 +174,22 @@ void BOPTools_Set::Add(const TopoDS_Shape& theS,
|
||||
continue;
|
||||
}
|
||||
}
|
||||
myShapes.Append(aSx);
|
||||
//
|
||||
aOr=aSx.Orientation();
|
||||
if (aOr==TopAbs_INTERNAL) {
|
||||
TopoDS_Shape aSy;
|
||||
//
|
||||
aSy=aSx;
|
||||
//
|
||||
aSy.Orientation(TopAbs_FORWARD);
|
||||
myShapes.Append(aSy);
|
||||
//
|
||||
aSy.Orientation(TopAbs_REVERSED);
|
||||
myShapes.Append(aSy);
|
||||
}
|
||||
else {
|
||||
myShapes.Append(aSx);
|
||||
}
|
||||
}
|
||||
//
|
||||
myNbShapes=myShapes.Extent();
|
||||
|
Reference in New Issue
Block a user