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

0023716: Boolean Fuse between two faces fails

This commit is contained in:
pkv
2013-01-28 11:51:58 +04:00
parent d9bea41f2f
commit b989480555
2 changed files with 26 additions and 3 deletions

View File

@@ -983,7 +983,6 @@ void IntTools_FaceFace::SetList(IntSurf_ListOfPntOn2S& aListOfPnts)
myTolReached3d=sqrt(aD2max);
}
}//if((aType1==GeomAbs_SurfaceOfRevolution ...
//modified by NIZNHY-PKV Thu Aug 30 13:31:10 2012f
else if ((aType1==GeomAbs_Plane && aType2==GeomAbs_Sphere) ||
(aType2==GeomAbs_Plane && aType1==GeomAbs_Sphere)) {
Standard_Integer i, j, aNbP;
@@ -1041,7 +1040,6 @@ void IntTools_FaceFace::SetList(IntSurf_ListOfPntOn2S& aListOfPnts)
myTolReached3d=sqrt(aD2max);
}
}//else if ((aType1==GeomAbs_Plane && aType2==GeomAbs_Sphere) ...
//modified by NIZNHY-PKV Thu Aug 30 13:31:12 2012t
}
//=======================================================================
//function : MakeCurve
@@ -2517,6 +2515,15 @@ Handle(Geom2d_BSplineCurve) MakeBSpline2d(const Handle(IntPatch_WLine)& theWLine
enlarge=Standard_True;
}
//
if (aType==GeomAbs_Sphere) {
Standard_Real dV;
//
dV=thevmax-thevmin;
if (dV+delta<M_PI) {
enlarge=Standard_True;
}
}
//
if(!isuperiodic && enlarge) {
if((theumin - uinf) > delta )
@@ -2679,7 +2686,7 @@ Handle(Geom2d_BSplineCurve) MakeBSpline2d(const Handle(IntPatch_WLine)& theWLine
// because inside degenerated zone of the surface the approx. algo.
// uses wrong values of normal, etc., and resulting curve will have
// oscillations that we would not like to have.
// PKV Tue Feb 12 2002
static