DownCast: from Geom_Curve to Geom_BSplineCurve


I am trying to access the content of an IGES file (a single BSpline curve). I have tried to follow all the steps, and everything works up to the last line in the attached code. I have checked that the Geom_Curve is a Geom_BSplineCurve.

The compilation does not return any error, but I cannot get rid of the following error (it disappears if I comment the last line)

error LNK2019: unresolved external symbol "public: static class Handle_Geom_BSplineCurve __cdecl Handle_Geom_BSplineCurve::DownCast(class Handle_Standard_Transient const &)" (?DownCast@Handle_Geom_BSplineCurve@@SA?AV1@ABVHandle_Standard_Transient@@@Z) referenced in function _main

I cannot find the difference between my code and some of the examples posted about DownCast.

Would you have any idea about what is the problem?
Thank you in advance


void main()
char *my_IGES_file="initial.igs";
IGESControl_Reader reader;
IFSelect_ReturnStatus stat = reader.ReadFile(my_IGES_file);
Standard_Boolean failsonly = Standard_False;
IFSelect_PrintCount mode = IFSelect_EntitiesByItem;

Handle(TColStd_HSequenceOfTransient) list = reader.GiveList("iges-basic-curves-3d");

Standard_Integer nbtrans = reader.TransferList (list);

TopoDS_Shape shape = reader.OneShape();

TopoDS_Edge edge = TopoDS::Edge(shape);

TopLoc_Location CurveLocation;
Standard_Real CurveStart, CurveEnd;
Handle(Geom_Curve) curve = BRep_Tool::Curve(edge, CurveLocation, CurveStart, CurveEnd);

Handle(Geom_BSplineCurve) BsCurve = Handle(Geom_BSplineCurve)::DownCast(curve);

Daniel Park's picture

I managed to solve the issue. I had forgotten to link the library TKG3d.lib