1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0030100: Modeling Algorithms - ShapeUpgrade_UnifySameDomain is unable to unify faces based on the same toroidal surface

When performing intersection of toroidal faces check first if they are based on the same surface.
Test cases for the issue.
This commit is contained in:
emv
2018-08-31 10:07:05 +03:00
committed by bugmaster
parent 98974dccef
commit 83f7dbeb62
4 changed files with 38 additions and 14 deletions

View File

@@ -1072,7 +1072,9 @@ void IntPatch_Intersection::Perform(const Handle(Adaptor3d_HSurface)& theS1,
bToCheck = aTor1.MajorRadius() > aTor1.MinorRadius();
if (typs1 == typs2) {
const gp_Torus aTor2 = aGeomSurf->Torus();
bToCheck = aTor2.MajorRadius() > aTor2.MinorRadius();
bToCheck = (bToCheck && (aTor2.MajorRadius() > aTor2.MinorRadius())) ||
(Abs(aTor1.MajorRadius() - aTor2.MajorRadius()) < TolTang &&
Abs(aTor1.MinorRadius() - aTor2.MinorRadius()) < TolTang);
}
//
if (aCTType == GeomAbs_Torus) {