1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-09 13:22:24 +03:00

0025819: Bad result of BOP cut on valid shapes

1. Algorithm of adjusting parameter to the surface boundaries has been changed.
2. Control First and Last parameters in BRepLib_CheckCurveOnSurface::Compute() function.

Test cases for issue CR25819
This commit is contained in:
nbv
2015-02-19 15:00:01 +03:00
committed by bugmaster
parent 7a7e8cf174
commit e002f1ce5b
5 changed files with 159 additions and 28 deletions

View File

@@ -385,7 +385,9 @@ void BRepLib_CheckCurveOnSurface::Compute
aValue = theMaxDist;
aParam = theMaxPar;
aBP = theMaxPar - aMinDelta;
MinComputing(aFunc, aFirst, aBP, anEpsilonRange, theMaxDist, theMaxPar);
if((aBP - aFirst) > Precision::PConfusion())
MinComputing(aFunc, aFirst, aBP, anEpsilonRange, theMaxDist, theMaxPar);
//
if(theMaxDist < aValue) {
aLast = aBP;
@@ -399,7 +401,9 @@ void BRepLib_CheckCurveOnSurface::Compute
//
if(!aStatus) {
aBP = theMaxPar + aMinDelta;
MinComputing(aFunc, aBP, aLast, 1.0e-3, theMaxDist, theMaxPar);
if((aLast - aBP) > Precision::PConfusion())
MinComputing(aFunc, aBP, aLast, 1.0e-3, theMaxDist, theMaxPar);
//
if(theMaxDist < aValue) {
aFirst = aBP;