| OpenTTD
    | 
Scaler for symmetric distribution. More...
 
  
 | Public Member Functions | |
| SymmetricScaler (uint mod_size) | |
| Constructor. | |
| void | AddNode (const Node &node) | 
| Count a node's supply into the sum of supplies. | |
| void | SetDemandPerNode (uint num_demands) | 
| Calculate the mean demand per node using the sum of supplies. | |
| uint | EffectiveSupply (const Node &from, const Node &to) | 
| Get the effective supply of one node towards another one. | |
| bool | HasDemandLeft (const Node &to) | 
| Check if there is any acceptance left for this node. | |
| void | SetDemands (LinkGraphJob &job, NodeID from, NodeID to, uint demand_forw) | 
| Set the demands between two nodes using the given base demand. | |
| Private Attributes | |
| uint | mod_size | 
| Size modifier. Determines how much demands increase with the supply of the remote station. | |
| uint | supply_sum | 
| Sum of all supplies in the component. | |
| uint | demand_per_node | 
| Mean demand associated with each node. | |
Scaler for symmetric distribution.
Definition at line 22 of file demands.cpp.
| 
 | inline | 
Constructor.
| mod_size | Size modifier to be used. Determines how much demands increase with the supply of the remote station. | 
Definition at line 29 of file demands.cpp.
| 
 | inline | 
Count a node's supply into the sum of supplies.
| node | Node. | 
Definition at line 37 of file demands.cpp.
References LinkGraph::NodeWrapper< Tnode, Tedge >::Supply(), and supply_sum.
Get the effective supply of one node towards another one.
In symmetric distribution the supply of the other node is weighed in.
| from | The supplying node. | 
| to | The receiving node. | 
Definition at line 58 of file demands.cpp.
References demand_per_node, max(), mod_size, and LinkGraph::NodeWrapper< Tnode, Tedge >::Supply().
| 
 | inline | 
Check if there is any acceptance left for this node.
In symmetric distribution nodes only accept anything if they also supply something. So if undelivered_supply == 0 at the node there isn't any demand left either.
| to | Node to be checked. | 
Definition at line 70 of file demands.cpp.
References LinkGraph::NodeWrapper< Tnode, Tedge >::Demand(), and LinkGraph::NodeWrapper< Tnode, Tedge >::Supply().
| 
 | inline | 
Calculate the mean demand per node using the sum of supplies.
| num_demands | Number of accepting nodes. | 
Definition at line 46 of file demands.cpp.
References demand_per_node, max(), and supply_sum.
| void SymmetricScaler::SetDemands | ( | LinkGraphJob & | job, | 
| NodeID | from_id, | ||
| NodeID | to_id, | ||
| uint | demand_forw | ||
| ) | 
Set the demands between two nodes using the given base demand.
In symmetric mode this sets demands in both directions.
| job | The link graph job. | 
| from_id | The supplying node. | 
| to_id | The receiving node. | 
| demand_forw | Demand calculated for the "forward" direction. | 
Reimplemented from Scaler.
Definition at line 131 of file demands.cpp.
 1.8.1.2
 1.8.1.2