mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-05 18:16:23 +03:00
0023139: BRepFilletAPI_MakeFillet algorithm builds edges with wrong first and last parameters: out of pcurve
This commit is contained in:
parent
bf03eb83c7
commit
84e5bff386
@ -378,6 +378,27 @@ static Standard_Boolean Update(Handle(Adaptor3d_HSurface)& face,
|
|||||||
pared = ponc1.Parameter();
|
pared = ponc1.Parameter();
|
||||||
parltg = ponc2.Parameter();
|
parltg = ponc2.Parameter();
|
||||||
if ((parltg > f) && (parltg < l)) {
|
if ((parltg > f) && (parltg < l)) {
|
||||||
|
////modified by jgv, 10.05.2012 for the bug 23139////
|
||||||
|
Handle(Geom2d_Curve) PConF = fi.PCurveOnFace();
|
||||||
|
if (!PConF.IsNull())
|
||||||
|
{
|
||||||
|
Handle(Geom2d_TrimmedCurve) aTrCurve = Handle(Geom2d_TrimmedCurve)::DownCast(PConF);
|
||||||
|
if (!aTrCurve.IsNull())
|
||||||
|
PConF = aTrCurve->BasisCurve();
|
||||||
|
if (isfirst)
|
||||||
|
{
|
||||||
|
Standard_Real fpar = PConF->FirstParameter();
|
||||||
|
if (parltg < fpar)
|
||||||
|
parltg = fpar;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Standard_Real lpar = PConF->LastParameter();
|
||||||
|
if (parltg > lpar)
|
||||||
|
parltg = lpar;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
fi.SetParameter(parltg,isfirst);
|
fi.SetParameter(parltg,isfirst);
|
||||||
cp.SetArc(cp.Tolerance(),cp.Arc(),pared,cp.TransitionOnArc());
|
cp.SetArc(cp.Tolerance(),cp.Arc(),pared,cp.TransitionOnArc());
|
||||||
return Standard_True;
|
return Standard_True;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user