const Handle(Adaptor2d_Curve2d)& aGeomPCurve = aProvider.GetPCurve();
- Standard_Integer aParamIdx, aParamNb;
if (theUpdateEnds)
{
- aParamIdx = 0;
- aParamNb = aCurve->ParametersNb();
- }
- else
- {
- aParamIdx = 1;
- aParamNb = aCurve->ParametersNb() - 1;
+ const Standard_Real aParam = aCurve->GetParameter(0);
+
+ gp_Pnt2d aPoint2d;
+ aGeomPCurve->D0(aParam, aPoint2d);
+
+ aPCurve->AddPoint(aPoint2d, aParam);
}
- for (; aParamIdx < aParamNb; ++aParamIdx)
+ for (Standard_Integer aParamIdx = 1; aParamIdx < aCurve->ParametersNb() - 1; ++aParamIdx)
{
const Standard_Real aParam = aProvider.Parameter(aParamIdx, aCurve->GetPoint(aParamIdx));
aPCurve->InsertPoint(aPCurve->ParametersNb() - 1, aPoint2d, aParam);
}
}
+
+ if (theUpdateEnds)
+ {
+ const Standard_Real aParam = aCurve->GetParameter(aCurve->ParametersNb() - 1);
+
+ gp_Pnt2d aPoint2d;
+ aGeomPCurve->D0(aParam, aPoint2d);
+
+ aPCurve->AddPoint(aPoint2d, aParam);
+ }
}
}