0024434: The result of Boolean FUSE operation is not correct
authoremv <emv@opencascade.com>
Mon, 9 Dec 2013 07:01:49 +0000 (11:01 +0400)
committerabv <abv@opencascade.com>
Thu, 12 Dec 2013 15:36:48 +0000 (19:36 +0400)
Small correction in splitting SEAM edge on face.

src/BOPTools/BOPTools_AlgoTools3D.cxx

index 4b33654..1c15163 100644 (file)
@@ -91,8 +91,8 @@ static
                                                 const TopoDS_Face& aF)
 {
   Standard_Boolean bIsUPeriodic, bIsVPeriodic, bIsLeft = Standard_False;
-  Standard_Real aTol, a, b, anUPeriod, anVPeriod, aT, anU, dU=1.e-7, anU1,
-                anV, dV=1.e-7, anV1;
+  Standard_Real aTol, a, b, anUPeriod, anVPeriod, aT, anU, dU/*=1.e-7*/, anU1,
+                anV, dV/*=1.e-7*/, anV1;
   Standard_Real aScPr;
   gp_Pnt2d aP2D;
   gp_Vec2d aVec2D;
@@ -159,6 +159,10 @@ static
   anU1=anU;
   anV1=anV;
   //
+  GeomAdaptor_Surface aGAS(aS);
+  dU = aGAS.UResolution(aTol);
+  dV = aGAS.VResolution(aTol);
+  //
   if (anUPeriod > 0.){
     if (fabs (anU) < dU) {
       bIsLeft=Standard_True;