MIRA
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
Link Class Reference

#include <topomap/Link.h>

Inheritance diagram for Link:
Inheritance graph
[legend]

Public Types

enum  Type { INTERLINK = 0, INTRALINK, UPLINK, SHALLOWLINK }
 Inter-Links, that connect GatewayNodes of sibling child nodes. More...
 

Public Member Functions

 Link ()
 
 Link (Type type, GatewayNodePtr from, GatewayNodePtr to, bool bidirectional=true, double costs=0.0)
 
template<typename Reflector >
void reflect (Reflector &r)
 
GatewayNodePtr from () const
 
GatewayNodePtr to () const
 
bool isBidirectional () const
 
Type type () const
 
virtual GraphElementPtr findElement (const std::string &predicate)
 
virtual const GraphElementPtr findElement (const std::string &predicate) const
 

Static Public Member Functions

static LinkPtr create ()
 
static LinkPtr create (Type type, GatewayNodePtr from, GatewayNodePtr to, bool bidirectional=true, double costs=0.0)
 

Public Attributes

bool bidirectional
 
double costs
 

Friends

class TopoMap
 

Member Enumeration Documentation

◆ Type

enum Type

Inter-Links, that connect GatewayNodes of sibling child nodes.

The costs of these links usually are 0, since the connected Gateways usually represent the same position in the world. If elevators are involved e.g. these costs can be >0.

Intra-Links are the links between all GatewayNodes of this node with eachother (a fully connected graph) Together with the (Inter)Links of the parent node and all IntraLinks of all siblings, form the complete topological path within this node level. The costs of the links represent the costs it takes to get from one GatewayNode within this node to another one. These costs are computed using the gridmap in the leaf nodes. For higher level nodes the costs are propagated upwards. This kind of links is not specified explicitly by a designer. They are computed during the graph generation / preparation stage.

UpLinks: Links that connect GatewayNodes of our children with the corresponding GatewayNodes (that link to the same Gateway) of this node. The costs of uplinks must be 0.

ShallowLinks: Links that symbolise a real connection between two GatewayNodes, even though there is no physical link between these (i.e. links between GatewayNodes with a common ancestor that isn't their Node's parent).

Enumerator
INTERLINK 
INTRALINK 
UPLINK 
SHALLOWLINK 

Constructor & Destructor Documentation

◆ Link() [1/2]

Link ( )

◆ Link() [2/2]

Link ( Type  type,
GatewayNodePtr  from,
GatewayNodePtr  to,
bool  bidirectional = true,
double  costs = 0.0 
)

Member Function Documentation

◆ create() [1/2]

static LinkPtr create ( )
inlinestatic

◆ create() [2/2]

static LinkPtr create ( Type  type,
GatewayNodePtr  from,
GatewayNodePtr  to,
bool  bidirectional = true,
double  costs = 0.0 
)
inlinestatic

◆ reflect()

void reflect ( Reflector &  r)
inline

◆ from()

GatewayNodePtr from ( ) const
inline

◆ to()

GatewayNodePtr to ( ) const
inline

◆ isBidirectional()

bool isBidirectional ( ) const
inline

◆ type()

Type type ( ) const
inline

◆ findElement() [1/2]

virtual GraphElementPtr findElement ( const std::string &  predicate)
inlinevirtualinherited

Reimplemented in GatewayNode, and Node.

◆ findElement() [2/2]

virtual const GraphElementPtr findElement ( const std::string &  predicate) const
inlinevirtualinherited

Friends And Related Function Documentation

◆ TopoMap

friend class TopoMap
friend

Member Data Documentation

◆ bidirectional

bool bidirectional

◆ costs

double costs

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