From 02e96c2d05d6493212140082dd674441fa6495b7 Mon Sep 17 00:00:00 2001
From: jcarpent <jcarpent@laas.fr>
Date: Tue, 9 Jan 2018 19:27:38 +0100
Subject: [PATCH] [Core] Register by default both MatType and Ref<MatType>

---
 src/eigenpy.cpp | 21 +++++++++++----------
 src/eigenpy.hpp |  7 +++++--
 2 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/src/eigenpy.cpp b/src/eigenpy.cpp
index a7e4642..dae15e9 100644
--- a/src/eigenpy.cpp
+++ b/src/eigenpy.cpp
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2015 LAAS-CNRS
+ * Copyright (c) 2015-2018 LAAS-CNRS
  *
  * This file is part of eigenpy.
  * eigenpy is free software: you can redistribute it and/or
@@ -22,17 +22,18 @@ namespace eigenpy
   /* Enable Eigen-Numpy serialization for a set of standard MatrixBase instance. */
   void enableEigenPy()
   {
+    using namespace Eigen;
     Exception::registerException();
 
-    enableEigenPySpecific<Eigen::MatrixXd>();
-    enableEigenPySpecific<Eigen::Matrix2d>();
-    enableEigenPySpecific<Eigen::Matrix3d>();
-    enableEigenPySpecific<Eigen::Matrix4d>();
-
-    enableEigenPySpecific<Eigen::VectorXd>();
-    enableEigenPySpecific<Eigen::Vector2d>();
-    enableEigenPySpecific<Eigen::Vector3d>();
-    enableEigenPySpecific<Eigen::Vector4d>();
+    ENABLE_SPECIFIC_MATRIX_TYPE(MatrixXd);
+    ENABLE_SPECIFIC_MATRIX_TYPE(Matrix2d);
+    ENABLE_SPECIFIC_MATRIX_TYPE(Matrix3d);
+    ENABLE_SPECIFIC_MATRIX_TYPE(Matrix4d);
+    
+    ENABLE_SPECIFIC_MATRIX_TYPE(VectorXd);
+    ENABLE_SPECIFIC_MATRIX_TYPE(Vector2d);
+    ENABLE_SPECIFIC_MATRIX_TYPE(Vector3d);
+    ENABLE_SPECIFIC_MATRIX_TYPE(Vector4d);
   }
 
 } // namespace eigenpy
diff --git a/src/eigenpy.hpp b/src/eigenpy.hpp
index 40cf587..9fcecc7 100644
--- a/src/eigenpy.hpp
+++ b/src/eigenpy.hpp
@@ -18,15 +18,18 @@
 #define __eigenpy_eigenpy_hpp__
 
 #include "eigenpy/fwd.hpp"
-#include "eigenpy/memory.hpp"
 #include "eigenpy/deprecated.hh"
+#include "eigenpy/ref.hpp"
+
+#define ENABLE_SPECIFIC_MATRIX_TYPE(TYPE) \
+  enableEigenPySpecific<TYPE>(); \
+  enableEigenPySpecific< eigenpy::Ref<TYPE> >();
 
 namespace eigenpy
 {
   /* Enable Eigen-Numpy serialization for a set of standard MatrixBase instance. */
   void enableEigenPy();
 
-  
   template<typename MatType>
   void enableEigenPySpecific();
   
-- 
GitLab