Salome HOME
Issue #17347: B-Splines in Sketcher
[modules/shaper.git] / src / SketchSolver / PlaneGCSSolver / PlaneGCSSolver_GeoExtensions.cpp
index a97976001ae0e23e9257c55ff102e12b178f9602..ade6eeaa773dd1330199f8f787eef5124cb36ab0 100644 (file)
@@ -75,13 +75,19 @@ void BSplineImpl::rebuildCache()
 {
   myCachedPoles.clear();
   myCachedWeights.clear();
+  myCachedKnots.clear();
+  myCachedMultiplicities.clear();
 
   for (GCS::VEC_P::iterator anIt = poles.begin(); anIt != poles.end(); ++anIt)
     myCachedPoles.push_back(GeomPnt2dPtr(new GeomAPI_Pnt2d(*anIt->x, *anIt->y)));
   for (GCS::VEC_pD::iterator anIt = weights.begin(); anIt != weights.end(); ++anIt)
     myCachedWeights.push_back(**anIt);
+  for (GCS::VEC_pD::iterator anIt = knots.begin(); anIt != knots.end(); ++anIt)
+    myCachedKnots.push_back(**anIt);
+  myCachedMultiplicities.assign(mult.begin(), mult.end());
 
-  myCurve.reset(new GeomAPI_BSpline2d(myCachedPoles, myCachedWeights, degree, periodic));
+  myCurve.reset(new GeomAPI_BSpline2d(degree, myCachedPoles, myCachedWeights,
+                                      myCachedKnots, myCachedMultiplicities, periodic));
 }
 
 } // namespace GCS