From eb4b73ba51aae888d961fee7fcea6404cbfaf61d Mon Sep 17 00:00:00 2001
From: Joseph Mirabel <jmirabel@laas.fr>
Date: Wed, 27 Aug 2014 19:29:14 +0200
Subject: [PATCH] Update Graph::configConstraint and Graph::pathConstraint

---
 include/hpp/manipulation/graph/graph.hh | 16 ++++++++++++----
 src/graph/graph.cc                      | 16 ++++++++++++++--
 2 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/include/hpp/manipulation/graph/graph.hh b/include/hpp/manipulation/graph/graph.hh
index 5872d8f..b178033 100644
--- a/include/hpp/manipulation/graph/graph.hh
+++ b/include/hpp/manipulation/graph/graph.hh
@@ -58,17 +58,25 @@ namespace hpp {
           /// \return The initialized projector.
           ConstraintSetPtr_t configConstraint (const Nodes_t& nodes);
 
+          /// Kept for compatibility. Do not use. Use configConstraint(const Edges_t&) instead
+          /// \param config Configuration that will initialize the projector.
+          /// \return The initialized constraint.
+          ConstraintSetPtr_t configConstraint (const Edges_t& edges, ConfigurationIn_t config) __attribute__ ((deprecated));
+
           /// Constraint to project onto the same leaf as config.
           /// \param edges a list of edges defining the foliation.
-          /// \param config Configuration that will initialize the projector.
-          /// \return The initialized projector.
-          ConstraintSetPtr_t configConstraint (const Edges_t& edges, ConfigurationIn_t config);
+          /// \return The constraint.
+          ConstraintSetPtr_t configConstraint (const Edges_t& edges);
 
           /// Constraint to project a path.
           /// \param edges a list of edges defining the foliation.
+          /// \return The constraint.
+          ConstraintSetPtr_t pathConstraint (const Edges_t& edges);
+
+          /// Kept for compatibility. Do not use. Use pathConstraint(const Edges_t&) instead
           /// \param config Configuration that will initialize the constraint.
           /// \return The initialized constraint.
-          ConstraintSetPtr_t pathConstraint (const Edges_t& edges, ConfigurationIn_t config);
+          ConstraintSetPtr_t pathConstraint (const Edges_t& edges, ConfigurationIn_t config) __attribute__ ((deprecated));
 
           /// Return the NodeSelector with the given name if any,
           /// NULL pointer if not found.
diff --git a/src/graph/graph.cc b/src/graph/graph.cc
index c763ca1..f3dfeb0 100644
--- a/src/graph/graph.cc
+++ b/src/graph/graph.cc
@@ -194,6 +194,13 @@ namespace hpp {
       }
 
       ConstraintSetPtr_t Graph::configConstraint (const Edges_t& edges, ConfigurationIn_t config)
+      {
+        ConstraintSetPtr_t constraint = configConstraint (edges);
+        constraint->offsetFromConfig (config);
+        return constraint;
+      }
+
+      ConstraintSetPtr_t Graph::configConstraint (const Edges_t& edges)
       {
         ConstraintSetPtr_t constraint;
         MapFromEdge::const_iterator it = cfgConstraintSetMapFromEdge_.find (edges);
@@ -220,11 +227,17 @@ namespace hpp {
           constraint = it->second;
         }
 
-        constraint->offsetFromConfig (config);
         return constraint;
       }
 
       ConstraintSetPtr_t Graph::pathConstraint (const Edges_t& edges, ConfigurationIn_t config)
+      {
+        ConstraintSetPtr_t constraint = pathConstraint (edges);
+        constraint->offsetFromConfig (config);
+        return constraint;
+      }
+
+      ConstraintSetPtr_t Graph::pathConstraint (const Edges_t& edges)
       {
         ConstraintSetPtr_t constraint;
         MapFromEdge::const_iterator it = pathConstraintSetMapFromEdge_.find (edges);
@@ -247,7 +260,6 @@ namespace hpp {
           constraint = it->second;
         }
 
-        constraint->offsetFromConfig (config);
         return constraint;
       }
 
-- 
GitLab