Gazebo Math

API Reference

8.1.0
Edge< E > Class Template Referenceabstract

Generic edge class. An edge has two ends and some constraint between them. For example, a directed edge only allows traversing the edge in one direction. More...

#include <Edge.hh>

Public Member Functions

 Edge (const VertexId_P &_vertices, const E &_data, const double _weight, const EdgeId &_id=kNullId)
 Constructor.
 
EData ()
 Get a mutable reference to the user data stored in the edge.
 
const EData () const
 Get a non-mutable reference to the user data stored in the edge.
 
virtual VertexId From (const VertexId &_from) const =0
 Get the destination end that is reachable from a source end of an edge.
 
EdgeId Id () const
 Get the edge Id.
 
void SetWeight (double _newWeight)
 Set the cost of the edge.
 
virtual VertexId To (const VertexId &_to) const =0
 Get the source end that can reach the destination end of an edge.
 
bool Valid () const
 An edge is considered valid when its id is not kNullId.
 
VertexId_P Vertices () const
 Get the two vertices contained in the edge.
 
double Weight () const
 The cost of traversing the _from end to the other end of the edge.
 

Detailed Description

template<typename E>
class gz::math::graph::Edge< E >

Generic edge class. An edge has two ends and some constraint between them. For example, a directed edge only allows traversing the edge in one direction.

Constructor & Destructor Documentation

◆ Edge()

template<typename E >
Edge ( const VertexId_P _vertices,
const E _data,
const double  _weight,
const EdgeId _id = kNullId 
)
inlineexplicit

Constructor.

Parameters
[in]_verticesThe vertices of the edge.
[in]_dataThe data stored in the edge.
[in]_weightThe weight (cost) of the edge.
[in]_idOptional unique id.

Member Function Documentation

◆ Data() [1/2]

template<typename E >
E & Data ( )
inline

Get a mutable reference to the user data stored in the edge.

Returns
The mutable reference to the user data stored in the edge.

◆ Data() [2/2]

template<typename E >
const E & Data ( ) const
inline

Get a non-mutable reference to the user data stored in the edge.

Returns
The non-mutable reference to the user data stored in the edge.

◆ From()

template<typename E >
virtual VertexId From ( const VertexId _from) const
pure virtual

Get the destination end that is reachable from a source end of an edge.

E.g.: Let's assume that we have an undirected edge (e1) with ends (v1) and (v2): (v1)–(v2). The operation e1.From(v1) returns (v2). The operation e1.From(v2) returns (v1).

E.g.: Let's assume that we have a directed edge (e2) with the tail end (v1) and the head end (v2): (v1)->(v2). The operation e2.From(v1) returns (v2). The operation e2.From(v2) returns kNullId.

Parameters
[in]_fromSource vertex.
Returns
The other vertex of the edge reachable from the "_from" vertex or kNullId otherwise.

Implemented in UndirectedEdge< E >, and DirectedEdge< E >.

◆ Id()

template<typename E >
EdgeId Id ( ) const
inline

Get the edge Id.

Returns
The edge Id.

◆ SetWeight()

template<typename E >
void SetWeight ( double  _newWeight)
inline

Set the cost of the edge.

Parameters
[in]_newWeightThe new cost.

◆ To()

template<typename E >
virtual VertexId To ( const VertexId _to) const
pure virtual

Get the source end that can reach the destination end of an edge.

E.g.: Let's assume that we have an undirected edge (e1) with ends (v1) and (v2): (v1)–(v2). The operation e1.To(v1) returns (v2). The operation e1.To(v2) returns (v1).

E.g.: Let's assume that we have a directed edge (e2) with the tail end (v1) and the head end (v2): (v1)->(v2). The operation e2.To(v1) returns kNullId. The operation e2.To(v2) returns v1.

Parameters
[in]_toDestination vertex.
Returns
The other vertex of the edge that can reach "_to" vertex or kNullId otherwise.

Implemented in UndirectedEdge< E >, and DirectedEdge< E >.

◆ Valid()

template<typename E >
bool Valid ( ) const
inline

An edge is considered valid when its id is not kNullId.

Returns
Whether the edge is valid or not.

References gz::math::graph::kNullId.

Referenced by UndirectedEdge< E >::From(), and Edge< E >::Vertices().

◆ Vertices()

template<typename E >
VertexId_P Vertices ( ) const
inline

Get the two vertices contained in the edge.

Returns
The two vertices contained in the edge.

References gz::math::graph::kNullId, and Edge< E >::Valid().

Referenced by UndirectedEdge< E >::From(), DirectedEdge< E >::Head(), and DirectedEdge< E >::Tail().

◆ Weight()

template<typename E >
double Weight ( ) const
inline

The cost of traversing the _from end to the other end of the edge.

Returns
The cost.

The documentation for this class was generated from the following file: