]> SALOME platform Git repositories - modules/shaper.git/blobdiff - src/GeomAlgoAPI/GeomAlgoAPI_EdgeBuilder.cpp
Salome HOME
Issue #17347: B-Splines in Sketcher
[modules/shaper.git] / src / GeomAlgoAPI / GeomAlgoAPI_EdgeBuilder.cpp
index 03145a117a4a7990435137d796d17ba5b4db2be4..3badacb17afb6aa9eab7ed363672246731558225 100644 (file)
@@ -20,9 +20,9 @@
 #include <GeomAlgoAPI_EdgeBuilder.h>
 
 #include <GeomAPI_Ax2.h>
+#include <GeomAPI_Ax3.h>
 #include <GeomAPI_BSpline2d.h>
 #include <GeomAPI_Ellipse.h>
-#include <GeomAPI_Pln.h>
 #include <GeomAPI_Pnt2d.h>
 
 #include <gp_Pln.hxx>
@@ -273,21 +273,24 @@ std::shared_ptr<GeomAPI_Edge> GeomAlgoAPI_EdgeBuilder::ellipticArc(
 }
 
 GeomEdgePtr GeomAlgoAPI_EdgeBuilder::bsplineOnPlane(
-    const std::shared_ptr<GeomAPI_Pln>& thePlane,
+    const std::shared_ptr<GeomAPI_Ax3>& thePlane,
     const std::list<GeomPnt2dPtr>& thePoles,
     const std::list<double>& theWeights,
+    const std::list<double>& theKnots,
+    const std::list<int>& theMults,
+    const int theDegree,
     const bool thePeriodic)
 {
   std::shared_ptr<GeomAPI_BSpline2d> aBSplineCurve(
-      new GeomAPI_BSpline2d(thePoles, theWeights, thePeriodic));
+      new GeomAPI_BSpline2d(theDegree, thePoles, theWeights, theKnots, theMults, thePeriodic));
   return bsplineOnPlane(thePlane, aBSplineCurve);
 }
 
 GeomEdgePtr GeomAlgoAPI_EdgeBuilder::bsplineOnPlane(
-    const std::shared_ptr<GeomAPI_Pln>& thePlane,
+    const std::shared_ptr<GeomAPI_Ax3>& thePlane,
     const std::shared_ptr<GeomAPI_BSpline2d>& theCurve)
 {
-  Handle(Geom_Curve) aCurve3D = GeomLib::To3d(thePlane->impl<gp_Pln>().Position().Ax2(),
+  Handle(Geom_Curve) aCurve3D = GeomLib::To3d(thePlane->impl<gp_Ax3>().Ax2(),
                                               theCurve->impl<Handle_Geom2d_BSplineCurve>());
 
   BRepBuilderAPI_MakeEdge anEdgeBuilder(aCurve3D);