#include <hpp/manipulation/graph/edge.hh>
Public Member Functions | |
virtual bool | build (core::PathPtr_t &path, ConfigurationIn_t q1, ConfigurationIn_t q2, const core::WeighedDistance &d) const |
virtual bool | applyConstraints (ConfigurationIn_t qoffset, ConfigurationOut_t q) const |
template<class EdgeType > | |
boost::shared_ptr< EdgeType > | waypoint () const |
Return the inner waypoint. | |
virtual std::ostream & | dotPrint (std::ostream &os, dot::DrawingAttributes da=dot::DrawingAttributes()) const |
Print the object in a stream. | |
void | createWaypoint (const unsigned int depth, const std::string &bname="WaypointEdge") |
Create inner waypoints. | |
NodePtr_t | node () const |
Get the node in which path after the waypoint is. | |
Static Public Member Functions | |
static WaypointEdgePtr_t | create (const GraphWkPtr_t &graph, const NodeWkPtr_t &from, const NodeWkPtr_t &to) |
Create a new WaypointEdge. | |
Protected Member Functions | |
void | init (const EdgeWkPtr_t &weak, const GraphWkPtr_t &graph, const NodeWkPtr_t &from, const NodeWkPtr_t &to) |
Initialization of the object. | |
virtual std::ostream & | print (std::ostream &os) const |
Print the object in a stream. |
Edge with waypoint.
Waypoints are handled recursively, i.e. class WaypointEdge contains only a Node and an Edge, the second Edge being itself. In this package, the Node in a WaypointEdge is semantically different from other Node because it does not correspond to a state with different manipulation rules. It has the same rules as another Node (either Edge::from() or Edge::to()).
Semantically, a waypoint Node is fully part of the WaypointEdge. When a corresponding path reaches it, no planning is required to know what to do next. To the contrary, when a path reaches Edge::from() or Edge::to(), there may be several possibilities.
virtual bool hpp::manipulation::graph::WaypointEdge::applyConstraints | ( | ConfigurationIn_t | qoffset, |
ConfigurationOut_t | q | ||
) | const [virtual] |
Reimplemented from hpp::manipulation::graph::Edge.
virtual bool hpp::manipulation::graph::WaypointEdge::build | ( | core::PathPtr_t & | path, |
ConfigurationIn_t | q1, | ||
ConfigurationIn_t | q2, | ||
const core::WeighedDistance & | d | ||
) | const [virtual] |
Reimplemented from hpp::manipulation::graph::Edge.
static WaypointEdgePtr_t hpp::manipulation::graph::WaypointEdge::create | ( | const GraphWkPtr_t & | graph, |
const NodeWkPtr_t & | from, | ||
const NodeWkPtr_t & | to | ||
) | [static] |
Create a new WaypointEdge.
Reimplemented from hpp::manipulation::graph::Edge.
void hpp::manipulation::graph::WaypointEdge::createWaypoint | ( | const unsigned int | depth, |
const std::string & | bname = "WaypointEdge" |
||
) |
virtual std::ostream& hpp::manipulation::graph::WaypointEdge::dotPrint | ( | std::ostream & | os, |
dot::DrawingAttributes | da = dot::DrawingAttributes() |
||
) | const [virtual] |
Print the object in a stream.
Reimplemented from hpp::manipulation::graph::Edge.
void hpp::manipulation::graph::WaypointEdge::init | ( | const EdgeWkPtr_t & | weak, |
const GraphWkPtr_t & | graph, | ||
const NodeWkPtr_t & | from, | ||
const NodeWkPtr_t & | to | ||
) | [protected] |
Initialization of the object.
Reimplemented from hpp::manipulation::graph::Edge.
NodePtr_t hpp::manipulation::graph::WaypointEdge::node | ( | ) | const [virtual] |
Get the node in which path after the waypoint is.
Reimplemented from hpp::manipulation::graph::Edge.
virtual std::ostream& hpp::manipulation::graph::WaypointEdge::print | ( | std::ostream & | os | ) | const [protected, virtual] |
Print the object in a stream.
Reimplemented from hpp::manipulation::graph::Edge.
boost::shared_ptr<EdgeType> hpp::manipulation::graph::WaypointEdge::waypoint | ( | ) | const |
Return the inner waypoint.
EdgeType | is either Edge or WaypointEdge |