diff --git a/include/hpp/manipulation/graph/graph.hh b/include/hpp/manipulation/graph/graph.hh
index 87094b0b04c430912a6eae042466bb740593369b..fb61be8f15100e6f35ea8fe4c9addc157eb12f0a 100644
--- a/include/hpp/manipulation/graph/graph.hh
+++ b/include/hpp/manipulation/graph/graph.hh
@@ -139,6 +139,12 @@ namespace hpp {
                              const ImplicitPtr_t& complement,
                              ImplicitPtr_t& combinationOfBoth) const;
 
+          /// Return the vector of tuples as registered in registerConstraints
+          /// \return a vector of tuples (c, c/complement, c/both) each of them
+          ///         corresponding to a constraint, the complement constraint
+          ///         and the combination of boths.
+          const ConstraintsAndComplements_t& constraintsAndComplements () const;
+
           /// Constraint to project onto the Node.
           /// \param state the state on which to project.
           /// \return The initialized projector.
diff --git a/src/graph/graph.cc b/src/graph/graph.cc
index 3d153daa09220c802ecb70cebff9c63bf048aad5..a2c0c25e3cfe00bf563e4367a1aab79a0f5802d9 100644
--- a/src/graph/graph.cc
+++ b/src/graph/graph.cc
@@ -187,6 +187,12 @@ namespace hpp {
         return false;
       }
 
+      const ConstraintsAndComplements_t& Graph::constraintsAndComplements ()
+        const
+      {
+        return constraintsAndComplements_;
+      }
+
       ConstraintSetPtr_t Graph::configConstraint (const StatePtr_t& state) const
       {
         return state->configConstraint ();