diff --git a/src/SWDRAW/SWDRAW_ShapeFix.cxx b/src/SWDRAW/SWDRAW_ShapeFix.cxx index 8dc75e556c..de47ca3a6b 100644 --- a/src/SWDRAW/SWDRAW_ShapeFix.cxx +++ b/src/SWDRAW/SWDRAW_ShapeFix.cxx @@ -18,6 +18,7 @@ #include #include +#include #include #include #include @@ -635,6 +636,19 @@ static Standard_Integer checkoverlapedges(Draw_Interpretor& di, Standard_Integer di<<"Invalid type of arguments"<<"\n"; return 1; } + + if (BRep_Tool::Degenerated(e1)) + { + di << a[1] << " is degenerated\n"; + return 1; + } + + if (BRep_Tool::Degenerated(e2)) + { + di << a[2] << " is degenerated\n"; + return 1; + } + Standard_Real aTol = Precision::Confusion(); Standard_Real aDistDomain = 0.0; Standard_Integer k = 3; diff --git a/tests/bugs/demo/bug25020 b/tests/bugs/demo/bug25020 new file mode 100755 index 0000000000..e1f51c47d5 --- /dev/null +++ b/tests/bugs/demo/bug25020 @@ -0,0 +1,21 @@ +puts "============" +puts "CR25020" +puts "============" +puts "" +########################################################################################################## +# checkoverlapedges doesn't have the check for degenerated edges +########################################################################################################## + +restore [locate_data_file bug25020_b.brep] b +explode b e + +dlog reset +dlog on +catch {checkoverlapedges b_1 b_2} +set info [dlog get] + +if { [regexp "degenerated" ${info} ] == 1 } { + puts "OK : checkoverlapedges have the check for degenerated edges" +} else { + puts "Error : checkoverlapedges doesn't have the check for degenerated edges" +}