I needed to use IGESToBRep_BasicCurve::TransferBSplineCurve() to transfer an IGESGeom_BSplineCurve to a Geom_BSplineCurve.

For some reason, the return type of that function is Handle_Geom_Curve;
wouldn't it be better to return Handle_Geom_BSplineCurve?

The correspondant for BSplineSurface does exactly this.

Roman Lygin's picture

Hi Fabio,

Normally you don't need to use IGESToBRep_BasicCurve. IGESControl_Reader is an entry point.

Even if you do, DownCast() works here:

IGESToBRep_BasicCurve aBC = ...;//
Handle(Geom_BSplineCurve) aBSCurve = Handle(Geom_BSplineCurve)::DownCast (aBC.TransferBSplineCurve());