From 22f4d59113b35b6d19c1ac0083a60b725f4ff2ca Mon Sep 17 00:00:00 2001
From: Valenza Florian <fvalenza@laas.fr>
Date: Tue, 13 Sep 2016 12:07:44 +0200
Subject: [PATCH] [C++][Minor] Added doc for using boost make_recursive_variant
 + minir clean

---
 bindings/python/joint.hpp               |  2 +-
 src/multibody/joint/joint-composite.hpp |  1 -
 src/multibody/joint/joint-variant.hpp   |  5 +++++
 src/multibody/model.hpp                 |  1 -
 src/multibody/visitor.hpp               | 10 ----------
 5 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/bindings/python/joint.hpp b/bindings/python/joint.hpp
index 9014d720f..094bb7f02 100644
--- a/bindings/python/joint.hpp
+++ b/bindings/python/joint.hpp
@@ -20,7 +20,7 @@
 
 #include <eigenpy/exception.hpp>
 #include <eigenpy/eigenpy.hpp>
-#include "pinocchio/multibody/joint/joint.hpp"
+#include "pinocchio/multibody/joint/joint-composite.hpp"
 
 namespace se3
 {
diff --git a/src/multibody/joint/joint-composite.hpp b/src/multibody/joint/joint-composite.hpp
index 26b7e3ac1..82585752e 100644
--- a/src/multibody/joint/joint-composite.hpp
+++ b/src/multibody/joint/joint-composite.hpp
@@ -19,7 +19,6 @@
 #define __se3_joint_composite_hpp__
 
 #include "pinocchio/assert.hpp"
-// #include "pinocchio/multibody/joint/joint-basic-visitors.hpp"
 #include "pinocchio/multibody/joint/joint.hpp"
 
 EIGEN_DEFINE_STL_VECTOR_SPECIALIZATION(se3::SE3)
diff --git a/src/multibody/joint/joint-variant.hpp b/src/multibody/joint/joint-variant.hpp
index 64fdacff9..b1e2b43c2 100644
--- a/src/multibody/joint/joint-variant.hpp
+++ b/src/multibody/joint/joint-variant.hpp
@@ -42,6 +42,11 @@ namespace se3
   struct JointModelComposite;
   struct JointDataComposite;
 
+  // The JointModelComposite contains several JointModel (which are JointModelVariant). Hence there is a circular
+  // dependency between JointModelComposite and JointModelVariant that can be resolved with the use of boost::recursive_variant
+  // For more details, see http://www.boost.org/doc/libs/1_58_0/doc/html/variant/tutorial.html#variant.tutorial.recursive 
+  //
+  // The same applies for JointDataComposite
   typedef boost::variant< JointModelRX, JointModelRY, JointModelRZ, JointModelRevoluteUnaligned, JointModelSpherical,
                           JointModelSphericalZYX, JointModelPX, JointModelPY, JointModelPZ,
                           JointModelPrismaticUnaligned, JointModelFreeFlyer, JointModelPlanar, JointModelTranslation,
diff --git a/src/multibody/model.hpp b/src/multibody/model.hpp
index 38f2a0f2b..6e478a9bc 100644
--- a/src/multibody/model.hpp
+++ b/src/multibody/model.hpp
@@ -26,7 +26,6 @@
 #include "pinocchio/spatial/inertia.hpp"
 #include "pinocchio/multibody/fwd.hpp"
 #include "pinocchio/multibody/frame.hpp"
-// #include "pinocchio/multibody/joint/joint.hpp"
 #include "pinocchio/multibody/joint/joint-composite.hpp"
 #include "pinocchio/deprecated.hh"
 #include "pinocchio/tools/string-generator.hpp"
diff --git a/src/multibody/visitor.hpp b/src/multibody/visitor.hpp
index e430fd5ad..d0cce5bb5 100644
--- a/src/multibody/visitor.hpp
+++ b/src/multibody/visitor.hpp
@@ -61,16 +61,6 @@ namespace se3
 			       static_cast<const Visitor*>(this)->args));
       }
 
-  //     void operator() (const JointModelBase<JointModelComposite> & jmodel) const
-  //     {
-  // JointDataVariant& jdataSpec = static_cast<const Visitor*>(this)->jdata;
-
-  // bf::invoke(&Visitor::template algo<JointModelComposite>,
-  //      bf::append2(jmodel,
-  //            boost::ref(boost::get<JointDataComposite>(jdataSpec)),
-  //            static_cast<const Visitor*>(this)->args));
-  //     }
-
       template<typename ArgsTmp>
       static void run(const JointModelVariant & jmodel,
 		      JointDataVariant & jdata,
-- 
GitLab