diff --git a/include/hpp/manipulation/graph/graph.hh b/include/hpp/manipulation/graph/graph.hh index b4a0838f31e3a01391a8fb2d86f90d01abb5acdd..26644ba11c6295073b7172a1e0a4122018046b47 100644 --- a/include/hpp/manipulation/graph/graph.hh +++ b/include/hpp/manipulation/graph/graph.hh @@ -17,6 +17,7 @@ #ifndef HPP_MANIPULATION_GRAPH_GRAPH_HH # define HPP_MANIPULATION_GRAPH_GRAPH_HH +# include "hpp/manipulation/robot.hh" # include "hpp/manipulation/graph/node-selector.hh" # include "hpp/manipulation/fwd.hh" @@ -39,11 +40,11 @@ namespace hpp { { public: /// Create a new Graph. - static GraphPtr_t create() + static GraphPtr_t create(RobotPtr_t robot) { Graph* ptr = new Graph; GraphPtr_t shPtr (ptr); - ptr->init (shPtr); + ptr->init (shPtr, robot); return shPtr; } @@ -63,8 +64,9 @@ namespace hpp { protected: /// Initialization of the object. - void init (const GraphWkPtr_t& weak) + void init (const GraphWkPtr_t& weak, RobotPtr_t robot) { + robot_ = robot; wkPtr_ = weak; } @@ -80,6 +82,9 @@ namespace hpp { /// stability constraints. ConstraintPtr_t constraints_; + /// Keep a pointer to the composite robot. + RobotPtr_t robot_; + /// Weak pointer to itself. GraphWkPtr_t wkPtr_; }; // Class Graph