mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-08-09 13:22:24 +03:00
0027119: Regression: Draw command "incmesh" hangs on the attacheced face.
BRepMesh_CircleTool: extend radius of circle by quite small value in order to classify points forming inscribed triangle as lying on it. Do not use PConfusion due to false positive result leading algorithm to hanging.
This commit is contained in:
@@ -152,7 +152,7 @@ Standard_Boolean BRepMesh_CircleTool::MakeCircle(const gp_XY& thePoint1,
|
||||
|
||||
theRadius = Sqrt(Max(Max((thePoint1 - aIntPnt).SquareModulus(),
|
||||
(thePoint2 - aIntPnt).SquareModulus()),
|
||||
(thePoint3 - aIntPnt).SquareModulus())) + aPrecision;
|
||||
(thePoint3 - aIntPnt).SquareModulus())) + 2 * RealEpsilon();
|
||||
|
||||
return Standard_True;
|
||||
}
|
||||
|
44
tests/bugs/mesh/bug27119
Normal file
44
tests/bugs/mesh/bug27119
Normal file
@@ -0,0 +1,44 @@
|
||||
puts "========"
|
||||
puts "OCC27119"
|
||||
puts "========"
|
||||
puts ""
|
||||
###########################################
|
||||
## Regression: Draw command "incmesh" hangs on the attacheced face.
|
||||
###########################################
|
||||
|
||||
set BugNumber OCC27119
|
||||
|
||||
restore [locate_data_file bug27119_GrossPlatePart3Step2TransformedFace.brep] result
|
||||
|
||||
dchrono t reset
|
||||
dchrono t start
|
||||
incmesh result 1.e-6
|
||||
dchrono t stop
|
||||
set time [dchrono t show]
|
||||
regexp {CPU user time: ([0-9|.]+) seconds} $time full seconds
|
||||
|
||||
set tri 0
|
||||
set nod 0
|
||||
set def 0
|
||||
|
||||
set tri_info [trinfo result]
|
||||
regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri
|
||||
regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod
|
||||
regexp { deflection +([-0-9.+eE]+)} $tri_info full def
|
||||
|
||||
set ref_tri 7855
|
||||
set ref_nod 7857
|
||||
set ref_def 9.3791641120333225e-013
|
||||
set tol_rel 0.01
|
||||
|
||||
# Computes deviation of the value from specified one
|
||||
checkreal "Nb of triangles" $tri $ref_tri 0 $tol_rel
|
||||
checkreal "Nb of nodes" $nod $ref_nod 0 $tol_rel
|
||||
checkreal "Deflection" $def $ref_def 1.e-12 0
|
||||
|
||||
set eps_time 3
|
||||
if { $seconds > $eps_time } {
|
||||
puts "Error: Too slow ($seconds > $eps_time)"
|
||||
}
|
||||
|
||||
set 3dviewer 1
|
@@ -30,13 +30,13 @@ regexp {deflection +([-0-9.+eE]+)} $tri_info full defl
|
||||
set env(os_type) $tcl_platform(platform)
|
||||
if { [string compare $env(os_type) "windows"] != 0 } {
|
||||
puts "OS = Linux"
|
||||
set good_tri 520414
|
||||
set good_nod 263938
|
||||
set good_tri 521058
|
||||
set good_nod 264260
|
||||
set good_defl 0.0026800432954056617
|
||||
} else {
|
||||
puts "OS = Windows NT"
|
||||
set good_tri 520414
|
||||
set good_nod 263938
|
||||
set good_tri 521058
|
||||
set good_nod 264260
|
||||
set good_defl 0.0026800432954056617
|
||||
}
|
||||
|
||||
|
@@ -1,10 +1,10 @@
|
||||
set TheFileName shading_012.brep
|
||||
###set bug_withouttri "OCC22687"
|
||||
###set nbwithouttri(All) 1
|
||||
#if { [string compare $command "shading"] == 0 } {
|
||||
# set bug_freelinks "OCC23106"
|
||||
# set nbfree(All) 4
|
||||
#} else {
|
||||
# set bug_freelinks "OCC25378"
|
||||
# set nbfree(All) 3
|
||||
#}
|
||||
if { [string compare $command "shading"] == 0 } {
|
||||
set bug_freelinks "OCC23106"
|
||||
set nbfree(All) 4
|
||||
} else {
|
||||
set bug_freelinks "OCC25378"
|
||||
set nbfree(All) 3
|
||||
}
|
||||
|
Reference in New Issue
Block a user