Ignition Math

API Reference

6.10.0
UndirectedEdge< E > Class Template Reference

An undirected edge represents a connection between two vertices. The connection is bidirectional, it's possible to traverse the edge in both directions. More...

#include <Edge.hh>

Public Member Functions

 UndirectedEdge (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 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 UndirectedEdge< E > NullEdge
 An invalid undirected edge. More...
 

Friends

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

Detailed Description

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

An undirected edge represents a connection between two vertices. The connection is bidirectional, it's possible to traverse the edge in both directions.

Constructor & Destructor Documentation

◆ UndirectedEdge()

UndirectedEdge ( 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.

◆ 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 >.

Friends And Related Function Documentation

◆ operator<<

std::ostream& operator<< ( std::ostream _out,
const UndirectedEdge< 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

UndirectedEdge< E > NullEdge
static

An invalid undirected edge.


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