OpenTTD
|
Updatable node class. More...
#include <linkgraph.h>
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. | |
![]() | |
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 | |
![]() | |
BaseNode & | node |
Node being wrapped. | |
BaseEdge * | edges |
Outgoing edges for wrapped node. | |
NodeID | index |
ID of wrapped node. |
Updatable node class.
The node itself as well as its edges can be modified.
Definition at line 374 of file linkgraph.h.
|
inline |
Constructor.
lg | LinkGraph to get the node from. |
node | ID of the node. |
Definition at line 381 of file linkgraph.h.
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.
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.
|
inline |
Get an iterator pointing to the start of the edges array.
Definition at line 397 of file linkgraph.h.
References LinkGraph::NodeWrapper< BaseNode, BaseEdge >::edges, and LinkGraph::NodeWrapper< BaseNode, BaseEdge >::index.
Referenced by DeleteStaleLinks().
|
inline |
Get an iterator pointing beyond the end of the edges array.
Definition at line 403 of file linkgraph.h.
References LinkGraph::NodeWrapper< BaseNode, BaseEdge >::edges.
Referenced by DeleteStaleLinks().
|
inline |
Get an Edge.
This is not a reference as the wrapper objects are not actually persistent.
to | ID of end node of edge. |
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.
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().
|
inline |
Set the node's demand.
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.
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.
|
inline |
Update the node's location on the map.
xy | New location. |
Definition at line 419 of file linkgraph.h.
References LinkGraph::NodeWrapper< BaseNode, BaseEdge >::node, and LinkGraph::BaseNode::xy.
|
inline |
Update the node's supply and set last_update to the current date.
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.