mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-04 18:06:22 +03:00
In ProjLib_ComputeApprox algorithm, compute correct parametric tolerance from the input 3D tolerance using surface resolution, in order to pass it to low-level 2D algorithm Approx_FitAndDivide2d (instantiation of the generic class Approx_ComputeCLine). Earlier 3D tolerance was used as parametric tolerance directly, which was a problem for surfaces with too small radius of curvature. Also, eliminate redundant creation of the object of type AppParCurves_MultiCurve on each iteration in the method Approx_ComputeCLine::Compute. The post treatment of the Edge/Edge intersections has been improved. Namely: a. Making the procedure of sharing Edge/Edge intersection vertices consistent with intersection algorithm by enlarging bounding box of each vertex on half of Precision::Confusion(); b. Algorithm of computation of vertex tolerance (in order to cover tangent zone between Edges) has been changed for Line/Circle cases. Test cases for issue CR27804 Adjusting test cases according to their new behavior. Mark the test boolean/volumemaker/A8 as unstable between different versions of MSVS (2010 and 2013).
30 lines
661 B
Plaintext
30 lines
661 B
Plaintext
puts "============"
|
|
puts "OCC27804"
|
|
puts "============"
|
|
puts ""
|
|
################################################################
|
|
## Two breps cause intersections to loop for too long/infinitely
|
|
################################################################
|
|
|
|
# The main idea of the test is performance meter.
|
|
|
|
|
|
restore [locate_data_file bug27804_il1.brep] b1
|
|
restore [locate_data_file bug27804_il2.brep] b2
|
|
|
|
explode b2 e
|
|
|
|
#should create pcurve
|
|
bhaspc b2_1 b1 do
|
|
|
|
mk2dcurve c2d b2_1 b1
|
|
|
|
if { [regexp "2d curve" [whatis c2d]] != 1 } {
|
|
puts "Faulty: No 2D curves detected"
|
|
}
|
|
|
|
v2d
|
|
donly c2d
|
|
2dfit
|
|
|
|
checkview -screenshot -2d -path ${imagedir}/${test_image}.png |