I approximated a TopoDS_Edge successfully with the following code example.
Handle(BRepAdaptor_HCurve) crv = new BRepAdaptor_HCurve(edgeAdaptor);
Approx_Curve3d approx(crv, tolerance, GeomAbs_C2, 1000, 3);
But is there any possibility to force the resulting curve to be nonrational, all weights to be 1.0?
approximation of Geom_BSplineCurve