OpenTTD
Public Member Functions
LinkGraph::Node Class Reference

Updatable node class. More...

#include <linkgraph.h>

Inheritance diagram for LinkGraph::Node:
LinkGraph::NodeWrapper< BaseNode, BaseEdge >

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 >
BaseNodenode
 Node being wrapped.
BaseEdgeedges
 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
lgLinkGraph to get the node from.
nodeID 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
toDestination node of the link.
capacityCapacity of the link.
usageUsage to be added.
modeUpdate 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
toID 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)
void LinkGraph::Node::SetDemand ( uint  demand)
inline

Set the node's demand.

Parameters
demandNew 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
toTarget node.
capacityCapacity of the link.
usageUsage to be added.
modeUpdate 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
xyNew 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
supplySupply 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: