diff --git a/src/BRepClass3d/BRepClass3d_SClassifier.cxx b/src/BRepClass3d/BRepClass3d_SClassifier.cxx index 0f4c554a76..1dfc926439 100644 --- a/src/BRepClass3d/BRepClass3d_SClassifier.cxx +++ b/src/BRepClass3d/BRepClass3d_SClassifier.cxx @@ -285,14 +285,7 @@ void BRepClass3d_SClassifier::Perform(BRepClass3d_SolidExplorer& SolidExplorer, aSelectorLine.SetCurrentLine(L, Par); Standard_Integer SelsEVL = 0; SelsEVL = aTree.Select(aSelectorLine); //SelsEE > 0 => Line/Edges & Line/Vertex intersection - - if (!aSelectorLine.IsCorrect()) - { - // Go to the next segment - isFaultyLine = Standard_True; - continue; - } - + if (SelsEVL > 0 ) { // Line and edges / vertices interference. diff --git a/tests/bugs/modalg_7/bug31415 b/tests/bugs/modalg_7/bug31415 new file mode 100644 index 0000000000..c87b047d5a --- /dev/null +++ b/tests/bugs/modalg_7/bug31415 @@ -0,0 +1,18 @@ +puts "=======================================================" +puts "0031415: Modeling Algorithms - Solid classifier works incorrectly on a cylinder" +puts "=======================================================" +puts "" + +restore [locate_data_file bug31415_1.brep] comp +restore [locate_data_file bug31415_2.brep] cyl + +explode comp v +mkpoint p1 comp_1 +mkpoint p2 comp_2 +mkpoint p3 comp_3 +mkpoint p4 comp_4 +foreach p {p1 p2 p3 p4} { + if {![regexp "IN" [bclassify cyl $p]]} { + puts "Error: classyfication of $p is wrong" + } +} \ No newline at end of file