1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-04 18:06:22 +03:00
occt/tests/bugs/modalg_7/bug28557
nbv faaa95cbe7 0029323: Intersection algorithm produces the curve with oscillation
Sometimes the algorithm of purging of extra points in the walking line makes enormous difference in distance between two neighbor segments of the line. This badly impacts the quality of approximation result. This patch balances the difference in distances by forbidding deletion of some points.

1. tests/bugs/modalg_6/bug27615

The reason of the correction is explained in the message ~0072580 (see issue #28557).

2. tests/bugs/modalg_7/bug28892*
   tests/bugs/modalg_7/bug28984

The reason of the correction is explained in the message ~0072583 (see issue #28984).
2017-12-08 16:39:03 +03:00

34 lines
903 B
Plaintext

puts "========"
puts "OCC28557"
puts "========"
puts ""
#################################################
# Test case bugs modalg_6 bug27615 works differently on VC10 and VC12
#################################################
set MaxTolReached 5.0e-6
set GoodNbCurv 1
brestore [locate_data_file bug27615.brep] b
explode b f
copy b_1 f1; copy b_19 f2;
don f1 f2
set log [bopcurves f1 f2 -2d -p 2.2023968513463648 29.150590232723459 2. 0.085664915040461045 -p 2.2023968513457164 31.082210390953925 2.9507808705284453 0.085823752287563393]
smallview
donly c_1
fit
disp f1 f2
checkview -screenshot -2d -path ${imagedir}/${test_image}_1.png
regexp {Tolerance Reached=+([-0-9.+eE]+)\n+([-0-9.+eE]+)} ${log} full Toler NbCurv
if {$Toler > $MaxTolReached} {
puts "Error: Big tolerance is returned by intersector"
}
if {$NbCurv != $GoodNbCurv} {
puts "Error: Please check NbCurves for intersector"
}