Loading...
Searching...
No Matches
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< E > Class Template Referenceabstract

Generic edge class. More...

#include <Edge.hh>

Inheritance diagram for ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< E >:

Public Member Functions

 Edge (const VertexId_P &_vertices, const E &_data, const double _weight, const EdgeId &_id=kNullId)
 Constructor.
 
E & Data ()
 Get a mutable reference to the user data stored in the edge.
 
const E & Data () 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 (const 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 ignition::math::IGNITION_MATH_VERSION_NAMESPACE::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 >
ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< 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 & ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< 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 & ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< 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 ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< E >::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 ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::DirectedEdge< E >, and ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::UndirectedEdge< E >.

◆ Id()

template<typename E >
EdgeId ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< E >::Id ( ) const
inline

Get the edge Id.

Returns
The edge Id.

◆ SetWeight()

template<typename E >
void ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< E >::SetWeight ( const double _newWeight)
inline

Set the cost of the edge.

Parameters
[in]_newWeightThe new cost.

◆ To()

template<typename E >
virtual VertexId ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< E >::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]_fromDestination vertex.
Returns
The other vertex of the edge that can reach "_to" vertex or kNullId otherwise.

Implemented in ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::DirectedEdge< E >, and ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::UndirectedEdge< E >.

◆ Valid()

template<typename E >
bool ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< E >::Valid ( ) const
inline

◆ Vertices()

◆ Weight()

template<typename E >
double ignition::math::IGNITION_MATH_VERSION_NAMESPACE::graph::Edge< E >::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: