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:
@@ -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) {
|
||||
|
Reference in New Issue
Block a user