1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-16 10:08:36 +03:00

0024656: Exception on current version of OCC libraries during perform of boolean operation (Regression)

Added protection for null vector.
Test case for issue CR24656
This commit is contained in:
emv 2014-04-10 17:54:09 +04:00 committed by apn
parent 0e4e12407f
commit aa74e2352f
2 changed files with 171 additions and 129 deletions

View File

@ -521,7 +521,9 @@ Standard_Integer BRepClass3d_SolidExplorer::OtherSegment(const gp_Pnt& P,
++NbPointsOK;
gp_Vec V (P, APoint);
Par = V.Magnitude();
if (Par > gp::Resolution())
if (Par > gp::Resolution() &&
aVecD1U.Magnitude() > gp::Resolution() &&
aVecD1V.Magnitude() > gp::Resolution())
{
gp_Vec Norm = aVecD1U.Crossed (aVecD1V);
Standard_Real tt = Norm.Magnitude();

40
tests/bugs/modalg_5/bug24656 Executable file
View File

@ -0,0 +1,40 @@
puts "========="
puts "OCC24656"
puts "========="
puts ""
###########################################################
# Exception on current version of OCC libraries during perform of boolean operation (Regression)
###########################################################
pload XSDRAW
restore [locate_data_file bug24656_Surface_1.brep] s1
restore [locate_data_file bug24656_Surface_2.brep] s2
restore [locate_data_file bug24656_Surface_3.brep] s3
restore [locate_data_file bug24656_Surface_4.brep] s4
restore [locate_data_file bug24656_Surface_5.brep] s5
restore [locate_data_file bug24656_Surface_6.brep] s6
restore [locate_data_file bug24656_Surface_7.brep] s7
bclearobjects
bcleartools
baddobjects s1 s2 s3 s4 s5 s6 s7
bfillds
bbuild res
fixshape result res
set square 337959
set nb_v_good 300
set nb_e_good 443
set nb_w_good 171
set nb_f_good 149
set nb_sh_good 85
set nb_sol_good 12
set nb_compsol_good 0
set nb_compound_good 2
set nb_shape_good 1162
set 2dviewer 1