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