X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blobdiff_plain;f=src%2FGeomFill%2FGeomFill_NSections.cxx;h=07a69e3c661f7525e4f80ffe14b16440606d4d3c;hp=48d597f0e5026cd3866e399da4e404bdb7d56d75;hb=ff3f03870ba406762f813fb449e1145b6a22fa92;hpb=1709b024501eaed862c91fd95e7369791b6ca7d4 diff --git a/src/GeomFill/GeomFill_NSections.cxx b/src/GeomFill/GeomFill_NSections.cxx index 48d597f0e5..07a69e3c66 100644 --- a/src/GeomFill/GeomFill_NSections.cxx +++ b/src/GeomFill/GeomFill_NSections.cxx @@ -1005,9 +1005,14 @@ void GeomFill_NSections::GetMinimalWeight(TColStd_Array1OfReal& Weights) const C1.SetRadius(radius); Handle(Geom_Curve) C = new (Geom_Circle) (C1); - if (! AC1.IsPeriodic()) { - Handle(Geom_Curve) Cbis = new (Geom_TrimmedCurve) - (C, AC1.FirstParameter(), AC1.LastParameter()); + + const Standard_Real aParF = AC1.FirstParameter(); + const Standard_Real aParL = AC1.LastParameter(); + const Standard_Real aPeriod = AC1.IsPeriodic() ? AC1.Period() : 0.0; + + if ((aPeriod == 0.0) || (Abs(aParL - aParF - aPeriod) > Precision::PConfusion())) + { + Handle(Geom_Curve) Cbis = new Geom_TrimmedCurve(C, aParF, aParL); C = Cbis; } return C;