OpenTTD

- Main Page
- Related Pages
- Modules
- Namespaces
- Data Structures
- Files

- Data Structures
- Class Hierarchy
- Data Fields

Public Member Functions
LinkGraph::Node Class Reference

Updatable node class. More...

`#include <linkgraph.h>`

Inheritance diagram for LinkGraph::Node:

## Public Member Functions
| Node (LinkGraph *lg, NodeID node)
| Constructor.
Edge | operator[] (NodeID to)
| Get an Edge.
EdgeIterator | Begin ()
| Get an iterator pointing to the start of the edges array.
EdgeIterator | End ()
| Get an iterator pointing beyond the end of the edges array.
void | UpdateSupply (uint supply)
| Update the node's supply and set last_update to the current date.
void | UpdateLocation (TileIndex xy)
| Update the node's location on the map.
void | SetDemand (uint demand)
| Set the node's demand.
void | AddEdge (NodeID to, uint capacity, uint usage, EdgeUpdateMode mode)
| Fill an edge with values from a link.
void | UpdateEdge (NodeID to, uint capacity, uint usage, EdgeUpdateMode mode)
| Creates an edge if none exists yet or updates an existing edge.
void | RemoveEdge (NodeID to)
| Remove an outgoing edge from this node.
Public Member Functions inherited from LinkGraph::NodeWrapper< BaseNode, BaseEdge >
| NodeWrapper (BaseNode &node, BaseEdge *edges, NodeID index)
| Wrap a node.
uint | Supply () const
| Get supply of wrapped node.
uint | Demand () const
| Get demand of wrapped node.
StationID | Station () const
| Get ID of station belonging to wrapped node.
Date | LastUpdate () const
| Get node's last update.
TileIndex | XY () const
| Get the location of the station associated with the node.

## Additional Inherited Members
Protected Attributes inherited from LinkGraph::NodeWrapper< BaseNode, BaseEdge >
BaseNode & | node
| Node being wrapped.
BaseEdge * | edges
| Outgoing edges for wrapped node.
NodeID | index
| ID of wrapped node.

## Detailed Description

Updatable node class.

The node itself as well as its edges can be modified.

Definition at line 374 of file linkgraph.h.

## Constructor & Destructor Documentation

LinkGraph::Node::Node | ( | LinkGraph * | lg,
|  | NodeID | node
| ) |  |
| inline

Constructor.

Parameters

  lg | LinkGraph to get the node from.
  node | ID of the node.

Definition at line 381 of file linkgraph.h.

## Member Function Documentation

void LinkGraph::Node::AddEdge | ( | NodeID | to,
|  | uint | capacity,
|  | uint | usage,
|  | EdgeUpdateMode | mode
| ) |  |

Fill an edge with values from a link.

Set the restricted or unrestricted update timestamp according to the given update mode.

Parameters

  to | Destination node of the link.
  capacity | Capacity of the link.
  usage | Usage to be added.
  mode | Update mode to be used.

Definition at line 191 of file linkgraph.cpp.

References _date, LinkGraph::BaseEdge::capacity, LinkGraph::edges, EUM_RESTRICTED, EUM_UNRESTRICTED, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_link_graph_pool >::index, LinkGraph::BaseEdge::last_restricted_update, LinkGraph::BaseEdge::last_unrestricted_update, LinkGraph::BaseEdge::next_edge, and LinkGraph::BaseEdge::usage.

EdgeIterator LinkGraph::Node::Begin | ( |  | ) |
| inline

Get an iterator pointing to the start of the edges array.

Returns
  Edge iterator.

Definition at line 397 of file linkgraph.h.

References LinkGraph::NodeWrapper< BaseNode, BaseEdge >::edges, and LinkGraph::NodeWrapper< BaseNode, BaseEdge >::index.

Referenced by DeleteStaleLinks().

EdgeIterator LinkGraph::Node::End | ( |  | ) |
| inline

Get an iterator pointing beyond the end of the edges array.

Returns
  Constant edge iterator.

Definition at line 403 of file linkgraph.h.

References LinkGraph::NodeWrapper< BaseNode, BaseEdge >::edges.

Referenced by DeleteStaleLinks().

Edge LinkGraph::Node::operator[] | ( | NodeID | to | ) |
| inline

Get an Edge.

This is not a reference as the wrapper objects are not actually persistent.

Parameters

  to | ID of end node of edge.

Returns
  Edge wrapper.

Definition at line 391 of file linkgraph.h.

References LinkGraph::NodeWrapper< BaseNode, BaseEdge >::edges.

void LinkGraph::Node::RemoveEdge | ( | NodeID | to | ) |

Remove an outgoing edge from this node.

Parameters

  to | ID of destination node.

Definition at line 226 of file linkgraph.cpp.

References LinkGraph::BaseEdge::capacity, LinkGraph::edges, Pool< Titem, Tindex, Tgrowth_step, Tmax_size, Tpool_type, Tcache, Tzero >::PoolItem<&_link_graph_pool >::index, INVALID_DATE, LinkGraph::BaseEdge::last_restricted_update, LinkGraph::BaseEdge::last_unrestricted_update, LinkGraph::BaseEdge::next_edge, and LinkGraph::BaseEdge::usage.

Referenced by DeleteStaleLinks().

void LinkGraph::Node::SetDemand | ( | uint | demand | ) |
| inline

Set the node's demand.

Parameters

  demand | New demand for the node.

Definition at line 428 of file linkgraph.h.

References LinkGraph::BaseNode::demand, and LinkGraph::NodeWrapper< BaseNode, BaseEdge >::node.

void LinkGraph::Node::UpdateEdge | ( | NodeID | to,
|  | uint | capacity,
|  | uint | usage,
|  | EdgeUpdateMode | mode
| ) |  |

Creates an edge if none exists yet or updates an existing edge.

Parameters

  to | Target node.
  capacity | Capacity of the link.
  usage | Usage to be added.
  mode | Update mode to be used.

Definition at line 211 of file linkgraph.cpp.

References LinkGraph::edges.

void LinkGraph::Node::UpdateLocation | ( | TileIndex | xy | ) |
| inline

Update the node's location on the map.

Parameters

  xy | New location.

Definition at line 419 of file linkgraph.h.

References LinkGraph::NodeWrapper< BaseNode, BaseEdge >::node, and LinkGraph::BaseNode::xy.

void LinkGraph::Node::UpdateSupply | ( | uint | supply | ) |
| inline

Update the node's supply and set last_update to the current date.

Parameters

  supply | Supply to be added.

Definition at line 409 of file linkgraph.h.

References _date, LinkGraph::BaseNode::last_update, LinkGraph::NodeWrapper< BaseNode, BaseEdge >::node, and LinkGraph::BaseNode::supply.

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

- src/linkgraph/linkgraph.h
- src/linkgraph/linkgraph.cpp