From 74cb2c6f131434a8ea5b8084413e2f07ac32c797 Mon Sep 17 00:00:00 2001
From: Justin Carpentier <jcarpent@laas.fr>
Date: Mon, 9 Oct 2017 18:58:49 +0200
Subject: [PATCH] [wip/pinocchio] Fix bug related to Eigen 3.3.x

---
 pinocchio/Makefile         |  1 +
 pinocchio/distinfo         |  1 +
 pinocchio/patches/patch-aa | 22 ++++++++++++++++++++++
 3 files changed, 24 insertions(+)
 create mode 100644 pinocchio/patches/patch-aa

diff --git a/pinocchio/Makefile b/pinocchio/Makefile
index 7acad18f..c4a97d6e 100644
--- a/pinocchio/Makefile
+++ b/pinocchio/Makefile
@@ -12,6 +12,7 @@ MAINTAINER=		gepetto@laas.fr
 CATEGORIES=		math
 COMMENT=		Efficient rigid body dynamics
 LICENSE=		gnu-lgpl-v3
+PKGREVISION=  1
 
 # parallel builds would consume all memory because of the g++ process size
 MAKE_JOBS_SAFE=		no
diff --git a/pinocchio/distinfo b/pinocchio/distinfo
index e9510147..55a53a00 100644
--- a/pinocchio/distinfo
+++ b/pinocchio/distinfo
@@ -1,3 +1,4 @@
 SHA1 (pinocchio-1.2.5.tar.gz) = 4a3e45b3154bf703c8822d2c3c49e32b92edf90e
 RMD160 (pinocchio-1.2.5.tar.gz) = b03d35e0f0abd1564ba8f44bb08b029dccc4dd1c
 Size (pinocchio-1.2.5.tar.gz) = 9003067 bytes
+SHA1 (patch-aa) = d122db98550c7615572a07454e5801508f2c3a77
diff --git a/pinocchio/patches/patch-aa b/pinocchio/patches/patch-aa
new file mode 100644
index 00000000..7ccbba25
--- /dev/null
+++ b/pinocchio/patches/patch-aa
@@ -0,0 +1,22 @@
+diff --git src/spatial/inertia.hpp src/spatial/inertia.hpp
+index 809e1c2..7b33c7b 100644
+--- src/spatial/inertia.hpp
++++ src/spatial/inertia.hpp
+@@ -238,7 +238,7 @@ namespace se3
+       M.template block<3,3>(LINEAR, LINEAR ).diagonal ().fill (m);
+       M.template block<3,3>(ANGULAR,LINEAR ) = alphaSkew(m,c);
+       M.template block<3,3>(LINEAR, ANGULAR) = -M.template block<3,3> (ANGULAR, LINEAR);
+-      M.template block<3,3>(ANGULAR,ANGULAR) = (typename Symmetric3::Matrix3)(I - AlphaSkewSquare(m,c));
++      M.template block<3,3>(ANGULAR,ANGULAR) = (I - AlphaSkewSquare(m,c)).matrix();
+ 
+       return M;
+     }
+@@ -320,7 +320,7 @@ namespace se3
+       res.template block<3,3>(ANGULAR,ANGULAR) = res.template block<3,3>(LINEAR,LINEAR) - res.template block<3,3>(LINEAR,LINEAR).transpose();
+       res.template block<3,3>(ANGULAR,ANGULAR) = -skewSquare(mv.linear(),c) - skewSquare(c,mv.linear());
+       
+-      res.template block<3,3>(LINEAR,LINEAR) = (typename Symmetric3::Matrix3)(I - AlphaSkewSquare(m,c));
++      res.template block<3,3>(LINEAR,LINEAR) = (typename Symmetric3::Matrix3)(I - AlphaSkewSquare(m,c)).matrix();
+       
+       res.template block<3,3>(ANGULAR,ANGULAR) -= res.template block<3,3>(LINEAR,LINEAR) * skew(v.angular());
+       res.template block<3,3>(ANGULAR,ANGULAR) += cross(v.angular(),res.template block<3,3>(LINEAR,LINEAR));
-- 
GitLab