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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user