1
0
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:
pkv
2015-01-22 17:19:07 +03:00
committed by bugmaster
parent 8f7e78f4de
commit 19dcfc1bdb
2 changed files with 50 additions and 1 deletions

View File

@@ -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();