Ignition Math

API Reference

6.4.0
DirectedEdge< E > Class Template Reference

A directed edge represents a connection between two vertices. The connection is unidirectional, it's only possible to traverse the edge in one direction (from the tail to the head). More...

#include <Edge.hh>

Public Member Functions

 DirectedEdge (const VertexId_P &_vertices, const E &_data, const double _weight, const EdgeId &_id=kNullId)
 Constructor. More...
 
VertexId From (const VertexId &_from) const override
 Get the destination end that is reachable from a source end of an edge. More...
 
VertexId Head () const
 Get the Id of the head vertex in this edge. More...
 
VertexId Tail () const
 Get the Id of the tail vertex in this edge. More...
 
VertexId To (const VertexId &_to) const override
 Get the source end that can reach the destination end of an edge. More...
 
- Public Member Functions inherited from Edge< E >
 Edge (const VertexId_P &_vertices, const E &_data, const double _weight, const EdgeId &_id=kNullId)
 Constructor. More...
 
const E & Data () const
 Get a non-mutable reference to the user data stored in the edge. More...
 
E & Data ()
 Get a mutable reference to the user data stored in the edge. More...
 
EdgeId Id () const
 Get the edge Id. More...
 
void SetWeight (const double _newWeight)
 Set the cost of the edge. More...
 
bool Valid () const
 An edge is considered valid when its id is not kNullId. More...
 
VertexId_P Vertices () const
 Get the two vertices contained in the edge. More...
 
double Weight () const
 The cost of traversing the _from end to the other end of the edge. More...
 

Static Public Attributes

static DirectedEdge< E > NullEdge
 An invalid directed edge. More...
 

Friends

std::ostreamoperator<< (std::ostream &_out, const DirectedEdge< E > &_e)
 Stream insertion operator. The output uses DOT graph description language. More...
 

Detailed Description

template<typename E>
class ignition::math::graph::DirectedEdge< E >

A directed edge represents a connection between two vertices. The connection is unidirectional, it's only possible to traverse the edge in one direction (from the tail to the head).

Constructor & Destructor Documentation

◆ DirectedEdge()

DirectedEdge ( 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

◆ From()

VertexId From ( const VertexId _from) const
inlineoverridevirtual

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.

Implements Edge< E >.

References ignition::math::graph::kNullId.

◆ Head()

VertexId Head ( ) const
inline

Get the Id of the head vertex in this edge.

Returns
An id of the head vertex in this edge.
See also
Tail()

◆ Tail()

VertexId Tail ( ) const
inline

Get the Id of the tail vertex in this edge.

Returns
An id of the tail vertex in this edge.
See also
Head()

◆ To()

VertexId To ( const VertexId _to) const
inlineoverridevirtual

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.

Implements Edge< E >.

References ignition::math::graph::kNullId.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream _out,
const DirectedEdge< E > &  _e 
)
friend

Stream insertion operator. The output uses DOT graph description language.

Parameters
[out]_outThe output stream.
[in]_eEdge to write to the stream.
See also
https://en.wikipedia.org/wiki/DOT_(graph_description_language).

Member Data Documentation

◆ NullEdge

DirectedEdge< E > NullEdge
static

An invalid directed edge.


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