From 336d53839fc283d60dfcc722a3d9b981a92352a8 Mon Sep 17 00:00:00 2001
From: Joseph Mirabel <jmirabel@laas.fr>
Date: Tue, 16 Feb 2016 19:46:38 +0100
Subject: [PATCH] Add submanifold definition to waypoint nodes

---
 src/graph/helper.cc | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/graph/helper.cc b/src/graph/helper.cc
index ec81466..45653f3 100644
--- a/src/graph/helper.cc
+++ b/src/graph/helper.cc
@@ -90,7 +90,7 @@ namespace hpp {
           for (LockedJoints_t::const_iterator it = lj_fol.begin ();
               it != lj_fol.end (); ++it)
             if (*it && (*it)->numberDof() > 0)
-              (*it) comp->addLockedJointConstraint (*it);
+              comp->addLockedJointConstraint (*it);
         }
 
         void FoliatedManifold::specifyFoliation (LevelSetEdgePtr_t lse) const
@@ -263,21 +263,25 @@ namespace hpp {
 
               static inline void setNodeConstraints (const NodeArray& n,
                   const FoliatedManifold& g, const FoliatedManifold& pg,
-                  const FoliatedManifold& p, const FoliatedManifold& pp)
+                  const FoliatedManifold& p, const FoliatedManifold& pp,
+                  const FoliatedManifold& m)
               {
                 // From and to are not populated automatically
                 // to avoid duplicates.
                 if (pregrasp) {
                   p .addToNode (Npregrasp (n));
                   pg.addToNode (Npregrasp (n));
+                  m .addToNode (Npregrasp (n));
                 }
                 if (intersec) {
                   p .addToNode (Nintersec (n));
                   g .addToNode (Nintersec (n));
+                  m .addToNode (Nintersec (n));
                 }
                 if (preplace) {
                   pp.addToNode (Npreplace (n));
                   g .addToNode (Npreplace (n));
+                  m .addToNode (Npreplace (n));
                 }
               }
 
@@ -336,7 +340,8 @@ namespace hpp {
             // Note that submanifold is not taken into account for nodes
             // because the edges constraints will enforce configuration to stay
             // in a leaf, and so in the manifold itself.
-            T::setNodeConstraints (n, grasp, pregrasp, place, preplace);
+            T::setNodeConstraints (n, grasp, pregrasp, place, preplace,
+                submanifoldDef);
 
             // Set the edges properties
             T::template setEdgeProp <true> (eF, n);
-- 
GitLab