Standard_Real& aTx)
{
Standard_Real aTF, aTL, Tol, U1f,U1l,V1f,V1l, af, al,aDist2, aMinDist2, aTm, aDist2New;
+ Standard_Real aEpsT;
Standard_Boolean theflag=Standard_False;
Standard_Integer aNbExt, i, iLower ;
aCP.Range1(aTF, aTL);
-
+ aEpsT=8.e-5;
aTm=0.5*(aTF+aTL);
aDist2=DistanceFunction(aTm);
aDist2 *= aDist2;
Extrema_POnSurf aPOnS;
anExtrema.Points(iLower, aPOnC, aPOnS);
-
+
aTx=aPOnC.Parameter();
-
- if (fabs (aTx-aTF) < myEpsT) {
- return !theflag;
+ ///
+ if (fabs (aTx-aTF) < aEpsT) {
+ return theflag;
}
- if (fabs (aTx-aTL) < myEpsT) {
- return !theflag;
+ if (fabs (aTx-aTL) < aEpsT) {
+ return theflag;
}
if (aTx>aTF && aTx<aTL) {
--- /dev/null
+puts "============"
+puts "CR23676"
+puts "============"
+puts ""
+#########################################################
+## Intersection between edge and a face produces extra vertex
+#########################################################
+
+restore [locate_data_file bug23651_q1.brep] b1
+
+explode b1
+copy b1_1 b1
+copy b1_3 b2
+
+bop b1 b2
+bopcut result
+
+set nb_v_good 2
+set nb_e_good 1
+set nb_w_good 1
+set nb_f_good 0
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 5