0025449: Excess vertex in result of General Fuse operation.
authorpkv <pkv@opencascade.com>
Fri, 21 Nov 2014 10:50:44 +0000 (13:50 +0300)
committerbugmaster <bugmaster@opencascade.com>
Fri, 21 Nov 2014 10:51:18 +0000 (13:51 +0300)
Changes:
1. class IntTools_EdgeFace
     method:
     Standard_Boolean IntTools_EdgeFace::CheckTouchVertex
     (const IntTools_CommonPrt& aCP,
     Standard_Real& aTx)

The parametric size of the contact zone between vertex and face has been changed

Test cases for issue CR25449

src/IntTools/IntTools_EdgeFace.cxx
tests/bugs/modalg_5/bug25449 [new file with mode: 0755]

index aa5352f..85bc50a 100644 (file)
@@ -1365,20 +1365,27 @@ Standard_Boolean IntTools_EdgeFace::CheckTouchVertex
   (const IntTools_CommonPrt& aCP,
    Standard_Real& aTx) 
 {
-  Standard_Real aTF, aTL, Tol, U1f,U1l,V1f,V1l, af, al,aDist2, aMinDist2, aTm, aDist2New;
-  Standard_Real aEpsT;
+  Standard_Real aTF, aTL, Tol, U1f,U1l,V1f,V1l;
+  Standard_Real aEpsT, af, al,aDist2, aMinDist2, aTm, aDist2New;
   Standard_Boolean theflag=Standard_False;
   Standard_Integer aNbExt, i, iLower ;
-
+  GeomAbs_CurveType aType;
+  //
   aCP.Range1(aTF, aTL);
+  aType=myC.GetType();
+  //
   aEpsT=8.e-5;
+  if (aType==GeomAbs_Line) {
+    aEpsT=9.e-5;
+  }
+  //
   aTm=0.5*(aTF+aTL);
   aDist2=DistanceFunction(aTm);
   aDist2 *= aDist2;
 
   Tol = Precision::PConfusion();
 
-  const Handle(Geom_Curve)&  Curve   =BRep_Tool::Curve  (myC.Edge(), af, al);
+  const Handle(Geom_Curve)&  Curve =BRep_Tool::Curve  (myC.Edge(), af, al);
   const Handle(Geom_Surface)& Surface=BRep_Tool::Surface(myS.Face());
 
   Surface->Bounds(U1f,U1l,V1f,V1l);
diff --git a/tests/bugs/modalg_5/bug25449 b/tests/bugs/modalg_5/bug25449
new file mode 100755 (executable)
index 0000000..e75c9ba
--- /dev/null
@@ -0,0 +1,31 @@
+puts "================"
+puts "OCC25449"
+puts "================"
+puts ""
+#######################################################################
+# Excess vertex in result of General Fuse operation.
+#######################################################################
+
+restore [locate_data_file bug25449_fz351.brep] b1
+restore [locate_data_file bug25449_ez679.brep] b2
+
+bclearobjects
+bcleartools
+baddobjects b1 b2
+
+bfillds -t
+bbuild result
+
+set square 21.1115
+
+set nb_v_good 4
+set nb_e_good 4
+set nb_w_good 1
+set nb_f_good 1
+set nb_sh_good 0
+set nb_sol_good 0
+set nb_compsol_good 0
+set nb_compound_good 1
+set nb_shape_good 11
+
+set 3dviewer 1