Salome HOME
[bos #38360] [CEA] improve performances of exportXAO and PublishToStudy
[modules/shaper.git] / src / GeomAlgoAPI / GeomAlgoAPI_EdgeBuilder.cpp
index 03145a117a4a7990435137d796d17ba5b4db2be4..0575a05251f1b9f879acf05487494bcf824353e1 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2014-2019  CEA/DEN, EDF R&D
+// Copyright (C) 2014-2024  CEA, EDF
 //
 // This library is free software; you can redistribute it and/or
 // modify it under the terms of the GNU Lesser General Public
@@ -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);