OpenTTD Source 20241224-master-gf74b0cf984
LinkGraph::BaseNode Struct Reference

Node of the link graph. More...

#include <linkgraph.h>

Public Member Functions

 BaseNode (TileIndex xy=INVALID_TILE, StationID st=INVALID_STATION, uint demand=0)
 Create a node or clear it.
 
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, uint32_t time, EdgeUpdateMode mode)
 Fill an edge with values from a link.
 
void UpdateEdge (NodeID to, uint capacity, uint usage, uint32_t time, 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.
 
bool HasEdgeTo (NodeID dest) const
 Check if an edge to a destination is present.
 
BaseEdgeoperator[] (NodeID to)
 
const BaseEdgeoperator[] (NodeID to) const
 

Data Fields

uint supply
 Supply at the station.
 
uint demand
 Acceptance at the station.
 
StationID station
 Station ID.
 
TileIndex xy
 Location of the station referred to by the node.
 
TimerGameEconomy::Date last_update
 When the supply was last updated.
 
std::vector< BaseEdgeedges
 Sorted list of outgoing edges from this node.
 

Private Member Functions

std::vector< BaseEdge >::iterator GetEdge (NodeID dest)
 
std::vector< BaseEdge >::const_iterator GetEdge (NodeID dest) const
 

Detailed Description

Node of the link graph.

contains all relevant information from the associated station. It's copied so that the link graph job can work on its own data set in a separate thread.

Definition at line 90 of file linkgraph.h.

Constructor & Destructor Documentation

◆ BaseNode()

LinkGraph::BaseNode::BaseNode ( TileIndex  xy = INVALID_TILE,
StationID  st = INVALID_STATION,
uint  demand = 0 
)

Create a node or clear it.

Parameters
xyLocation of the associated station.
stID of the associated station.
demandDemand for cargo at the station.

Definition at line 26 of file linkgraph.cpp.

References TimerGameConst< struct Economy >::INVALID_DATE.

Member Function Documentation

◆ AddEdge()

void LinkGraph::BaseNode::AddEdge ( NodeID  to,
uint  capacity,
uint  usage,
uint32_t  travel_time,
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 167 of file linkgraph.cpp.

References LinkGraph::BaseEdge::capacity, TimerGameEconomy::date, EUM_RESTRICTED, EUM_UNRESTRICTED, LinkGraph::BaseEdge::last_restricted_update, LinkGraph::BaseEdge::last_unrestricted_update, LinkGraph::BaseEdge::travel_time_sum, and LinkGraph::BaseEdge::usage.

◆ GetEdge() [1/2]

std::vector< BaseEdge >::iterator LinkGraph::BaseNode::GetEdge ( NodeID  dest)
inlineprivate

Definition at line 156 of file linkgraph.h.

◆ GetEdge() [2/2]

std::vector< BaseEdge >::const_iterator LinkGraph::BaseNode::GetEdge ( NodeID  dest) const
inlineprivate

Definition at line 161 of file linkgraph.h.

◆ HasEdgeTo()

bool LinkGraph::BaseNode::HasEdgeTo ( NodeID  dest) const
inline

Check if an edge to a destination is present.

Parameters
destWanted edge destination.
Returns
True if an edge is present.

Definition at line 138 of file linkgraph.h.

◆ operator[]() [1/2]

BaseEdge & LinkGraph::BaseNode::operator[] ( NodeID  to)
inline

Definition at line 143 of file linkgraph.h.

◆ operator[]() [2/2]

const BaseEdge & LinkGraph::BaseNode::operator[] ( NodeID  to) const
inline

Definition at line 149 of file linkgraph.h.

◆ RemoveEdge()

void LinkGraph::BaseNode::RemoveEdge ( NodeID  to)

Remove an outgoing edge from this node.

Parameters
toID of destination node.

Definition at line 201 of file linkgraph.cpp.

◆ SetDemand()

void LinkGraph::BaseNode::SetDemand ( uint  demand)
inline

Set the node's demand.

Parameters
demandNew demand for the node.

Definition at line 124 of file linkgraph.h.

References demand.

◆ UpdateEdge()

void LinkGraph::BaseNode::UpdateEdge ( NodeID  to,
uint  capacity,
uint  usage,
uint32_t  travel_time,
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 186 of file linkgraph.cpp.

◆ UpdateLocation()

void LinkGraph::BaseNode::UpdateLocation ( TileIndex  xy)
inline

Update the node's location on the map.

Parameters
xyNew location.

Definition at line 115 of file linkgraph.h.

References xy.

◆ UpdateSupply()

void LinkGraph::BaseNode::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 105 of file linkgraph.h.

References TimerGameEconomy::date, and supply.

Field Documentation

◆ demand

uint LinkGraph::BaseNode::demand

Acceptance at the station.

Definition at line 92 of file linkgraph.h.

Referenced by SymmetricScaler::HasDemandLeft(), AsymmetricScaler::HasDemandLeft(), and SetDemand().

◆ edges

std::vector<BaseEdge> LinkGraph::BaseNode::edges

Sorted list of outgoing edges from this node.

Definition at line 97 of file linkgraph.h.

Referenced by LinkGraphOverlay::RebuildCache().

◆ last_update

TimerGameEconomy::Date LinkGraph::BaseNode::last_update

When the supply was last updated.

Definition at line 95 of file linkgraph.h.

Referenced by LinkGraph::ShiftDates().

◆ station

StationID LinkGraph::BaseNode::station

Station ID.

Definition at line 93 of file linkgraph.h.

Referenced by FlowMapper::Run(), and LinkGraphJob::~LinkGraphJob().

◆ supply

◆ xy

TileIndex LinkGraph::BaseNode::xy

Location of the station referred to by the node.

Definition at line 94 of file linkgraph.h.

Referenced by UpdateLocation().


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