diff --git a/src/BRepMesh/BRepMesh_EdgeTessellator.cxx b/src/BRepMesh/BRepMesh_EdgeTessellator.cxx index 3ff00f8028..0daa3509d3 100644 --- a/src/BRepMesh/BRepMesh_EdgeTessellator.cxx +++ b/src/BRepMesh/BRepMesh_EdgeTessellator.cxx @@ -79,7 +79,7 @@ BRepMesh_EdgeTessellator::BRepMesh_EdgeTessellator( { // bug24220 const Standard_Integer aNbInt = myCOnS.NbIntervals(GeomAbs_C1); - if ( aNbInt > 0 ) + if ( aNbInt > 1 ) { TColStd_Array1OfReal anIntervals( 1, aNbInt + 1 ); myCOnS.Intervals(anIntervals, GeomAbs_C1); diff --git a/tests/bugs/mesh/bug28118 b/tests/bugs/mesh/bug28118 new file mode 100644 index 0000000000..fe38d2c074 --- /dev/null +++ b/tests/bugs/mesh/bug28118 @@ -0,0 +1,27 @@ +puts "========" +puts "OCC28118" +puts "========" +puts "" +########################################### +# Mesh generation hangs then crashes +########################################### + +testreadstep [locate_data_file bug28118_18547.stp] result +vclear +vinit View1 +vdefaults -autoTriang off +vdisplay result +vfit +incmesh result 0.1 -relative +vsetdispmode 1 +set tri_info [trinfo result] + +regexp { +([-0-9.+eE]+) +triangles} $tri_info full tri +regexp { +([-0-9.+eE]+) +nodes} $tri_info full nod + +if { $tri > 0 && $nod > 0 } { + puts "OK: mesh was created correctly" +} else { + puts "Error: mesh was not built" + +checkview -screenshot -3d -path ${imagedir}/${test_image}.png diff --git a/tests/mesh/data/standard/W7 b/tests/mesh/data/standard/W7 index c760ae6feb..c3a0501efb 100755 --- a/tests/mesh/data/standard/W7 +++ b/tests/mesh/data/standard/W7 @@ -1,14 +1,11 @@ set TheFileName shading_wrongshape_027.brep set bug_freenodes "OCC22687" set nbfreenodes(All) 6 -set max_rel_tol_diff 1 if { [string compare $command "shading"] != 0 } { #set bug_area "OCC22687" + set max_rel_tol_diff 1 set rel_tol 1.2 } else { - set rel_tol 1.1 - set nbfree(All) 2 - set bug_freelinks "OCC22687" + set max_rel_tol_diff 0.01 + set rel_tol 0.052351028422287886 } -set nbcross(All) 2 -set bug_cross "OCC23184"