diff --git a/src/IntCurve/IntCurve_IntConicConic_1.cxx b/src/IntCurve/IntCurve_IntConicConic_1.cxx index 65b557619b..53e56a3103 100644 --- a/src/IntCurve/IntCurve_IntConicConic_1.cxx +++ b/src/IntCurve/IntCurve_IntConicConic_1.cxx @@ -718,7 +718,11 @@ void IntCurve_IntConicConic::Perform(const gp_Circ2d& Circle1 PeriodicInterval C1Domain(DomainCirc1); //-- On se ramene entre 0 et 2PI Standard_Real deltat = C1Domain.Bsup-C1Domain.Binf; - if(deltat>=PIpPI) { deltat=PIpPI-1e-14; } + if(deltat>=PIpPI) + { + // make deltat not including the upper limit + deltat=NextAfter(PIpPI, 0.); + } while(C1Domain.Binf >= PIpPI) C1Domain.Binf-=PIpPI; while(C1Domain.Binf < 0.0) C1Domain.Binf+=PIpPI; @@ -726,7 +730,10 @@ void IntCurve_IntConicConic::Perform(const gp_Circ2d& Circle1 PeriodicInterval C2Domain(DomainCirc2); deltat = C2Domain.Bsup-C2Domain.Binf; - if(deltat>=PIpPI) { deltat=PIpPI-1e-14; } + if(deltat>=PIpPI) + { + deltat=NextAfter(PIpPI, 0.); + } while(C2Domain.Binf >= PIpPI) C2Domain.Binf-=PIpPI; while(C2Domain.Binf < 0.0) C2Domain.Binf+=PIpPI; @@ -935,14 +942,10 @@ void IntCurve_IntConicConic::Perform(const gp_Circ2d& Circle1 //-------------------------------------------------- if(Opposite) { - if(nbsol!=3) { if(C2inf