There is something I am not able to understand. I have a Handle(Geom2d_Curve) and an Handle(Geom_Surface)from which I create a TopoDS_Edge using the corresponding constructor from the BRepBuilderAPI_MakeEdge class. Note that the Handle(Geom2d_Curve) has been computed by projecting a Geom_Curve onto a Geom_Surface. The Geom_Surface is obtained from a TopoDS_Face using the BRep_Tool::Surface method.
Once the TopoDS_Edge has been built, I add to it a 3D curve using the ShapeFix_Edge::FixAddCurve3d( TopoDS_Edge) method. Such function returns Standard_True which makes me think that the computation is successful. As last stage I extract the Geom2d_Curve of the edge by using the BRep_Tool::CurveOnSurface function using the egde and the face generating the Geom_Surface I mentioned before. The CurveOnSurface method returns a null pointer. How is that possible? I first built the edge using a Handle(Geom2d_Curve) so I do not see why the pointer is null.
Can anyone explain me this result I get?
Thank you very much,