Algorithm of seeking of any internal point into given face is corrected.
Test case for issue CR24684
}
}
- if (APointExist)
+ while (APointExist)
{
ParamInit *= 0.41234;
u_ = P.X() + ParamInit* T.X();
BRepAdaptor_Surface s;
s.Initialize (face, Standard_False);
s.D1 (u_, v_, APoint_, theVecD1U, theVecD1V);
- return Standard_True;
+
+ if(theVecD1U.CrossMagnitude(theVecD1V) > gp::Resolution())
+ return Standard_True;
+
+ if(ParamInit < Precision::PConfusion())
+ return Standard_False;
}
}
return Standard_False;
--- /dev/null
+puts "============"
+puts "OCC24684"
+puts "============"
+puts ""
+############################################################################
+# Command fixshape hangs up on the attached shape
+############################################################################
+
+pload XSDRAW
+
+restore [locate_data_file bug24684_r.brep] a
+
+cpulimit 60
+
+fixshape result a
+
+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 15
+set nb_compsol_good 0
+set nb_compound_good 3
+set nb_shape_good 1166
+
+set 2dviewer 1