From f894f8deb819d3816064cb4a79009fdbd759e461 Mon Sep 17 00:00:00 2001
From: Pierre Fernbach <pierre.fernbach@laas.fr>
Date: Fri, 22 Nov 2019 15:40:33 +0100
Subject: [PATCH] SO3_linear : correctly check time interval in derivate()

---
 include/curves/so3_linear.h | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/include/curves/so3_linear.h b/include/curves/so3_linear.h
index f88072b..17f6b3c 100644
--- a/include/curves/so3_linear.h
+++ b/include/curves/so3_linear.h
@@ -99,6 +99,10 @@ struct SO3Linear : public curve_abc<Time, Numeric, Safe, Eigen::Matrix<Numeric,
   ///  \param order : order of derivative.
   ///  \return \f$\frac{d^Nx(t)}{dt^N}\f$ point corresponding on derivative spline at time t.
   virtual point3_t derivate(const time_t t, const std::size_t order) const {
+    if ((t < T_min_ || t > T_max_) && Safe) {
+      throw std::invalid_argument(
+          "error in SO3_linear : time t to evaluate derivative should be in range [Tmin, Tmax] of the curve");
+    }
     if (order > 1 || t > T_max_ || t < T_min_) {
       return point3_t::Zero(3);
     } else if (order == 1) {
-- 
GitLab