DownCast: from Geom_Curve to Geom_BSplineCurve

Hi

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

#include
#include
#include
#include
#include
#include
#include

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;
reader.PrintCheckLoad(failsonly,mode);

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

Standard_Integer nbtrans = reader.TransferList (list);

TopoDS_Shape shape = reader.OneShape();
reader.PrintTransferInfo(IFSelect_FailOnly,IFSelect_Mapping);

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