From ceafea3784f7ecc278bb696c59afda925f76ea37 Mon Sep 17 00:00:00 2001
From: Pierre Fernbach <pierre.fernbach@laas.fr>
Date: Wed, 14 Feb 2018 11:44:51 +0100
Subject: [PATCH] Expose computeBernstein() and add a parameter : degree of
 polynome

---
 include/bezier-com-traj/solve.hh |  1 +
 src/solve.cpp                    | 10 +++++-----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/include/bezier-com-traj/solve.hh b/include/bezier-com-traj/solve.hh
index c14b623..c11bc65 100644
--- a/include/bezier-com-traj/solve.hh
+++ b/include/bezier-com-traj/solve.hh
@@ -24,6 +24,7 @@ namespace bezier_com_traj
      BEZIER_COM_TRAJ_DLLAPI ResultDataCOMTraj solve0step(const ProblemData& pData, const std::vector<double>& Ts, const double timeStep = -1);
 
 
+     std::vector<spline::Bern<double> > ComputeBersteinPolynoms(int degree);
 
      /// Methods for transition test :
 
diff --git a/src/solve.cpp b/src/solve.cpp
index c8e3052..42d09f2 100644
--- a/src/solve.cpp
+++ b/src/solve.cpp
@@ -111,11 +111,11 @@ waypoint_t u4 (point_t_tC /*l0*/, const double /*alpha*/)
 }
 
 
-std::vector<spline::Bern<double> > ComputeBersteinPolynoms()
+std::vector<spline::Bern<double> > ComputeBersteinPolynoms(int degree)
 {
     std::vector<spline::Bern<double> > res;
-    for (unsigned int i =0; i <5; ++i)
-        res.push_back(spline::Bern<double>(4,i));
+    for (unsigned int i =0; i <= degree; ++i)
+        res.push_back(spline::Bern<double>(degree,i));
     return res;
 }
 
@@ -141,7 +141,7 @@ std::vector<waypoint_t> ComputeAllWaypoints(point_t_tC p0, point_t_tC dc0, point
     wps.push_back(w4(p0, p1, g, p0X, p1X, gX, alpha));
     if (numSteps > 0)
     {
-        std::vector<spline::Bern<double> > berns = ComputeBersteinPolynoms();
+        std::vector<spline::Bern<double> > berns = ComputeBersteinPolynoms(4);
         wps = ComputeDiscretizedWaypoints(wps, berns, numSteps);
     }
     return wps;
@@ -159,7 +159,7 @@ std::vector<waypoint_t> ComputeAllWaypointsAngularMomentum(point_t_tC l0, const
     wps.push_back(u4(l0, alpha));
     if (numSteps > 0)
     {
-        std::vector<spline::Bern<double> > berns = ComputeBersteinPolynoms();
+        std::vector<spline::Bern<double> > berns = ComputeBersteinPolynoms(4);
         wps = ComputeDiscretizedWaypoints(wps, berns, numSteps);
     }
     return wps;
-- 
GitLab