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

0025408: Wrong result obtained by General Fuse operator.

Changes:

class BOPTools_AlgoTools2D
        method:
    void BOPTools_AlgoTools2D::AdjustPCurveOnFace
      (const TopoDS_Face& aF,
       const Standard_Real aFirst,
       const Standard_Real aLast,
       const Handle(Geom2d_Curve)& aC2D,
       Handle(Geom2d_Curve)& aC2DA)

The location of 2D-curve is adjusted to face boubaries if necessary
using the precision value in parametric space

Unnecessary comments are removed

Test case for issue CR25408
This commit is contained in:
pkv
2014-10-30 11:42:32 +03:00
committed by bugmaster
parent 1c9d151726
commit 67e36f0c7a
2 changed files with 47 additions and 11 deletions

View File

@@ -323,21 +323,17 @@ void BOPTools_AlgoTools2D::AdjustPCurveOnFace
// du
du = 0.;
if (aBAS.IsUPeriodic()) {
Standard_Real u2x;
aUPeriod = aBAS.UPeriod();
//
// A. drive u2 into the stall [Umin, Umin+aUPeriod] -> u2x
GeomInt::AdjustPeriodic(u2, UMin, UMax, aUPeriod, u2x, du, 0.);
//
// b. try to clarify u2 using the precision (aDelta)
if (fabs(u2x-UMin) < aDelta) {
u2=UMin;
}
else if (fabs(u2x-UMin-aUPeriod) < aDelta) {
// a. try to clarify u2 using the precision (aDelta)
if (fabs(u2-UMin) < aDelta) {
u2=UMin;
}
else if (fabs(u2-UMin-aUPeriod) < aDelta) {
u2=UMin+aUPeriod;
}
// C. compute du again using clarified value of u2
GeomInt::AdjustPeriodic(u2, UMin, UMax, aUPeriod, u2x, du, 0.);
// b. compute du again using clarified value of u2
GeomInt::AdjustPeriodic(u2, UMin, UMax, aUPeriod, u2, du, 0.);
//
if (du==0.) {
if (aBAS.GetType()==GeomAbs_Cylinder) {