OpenTTD Source 20260206-master-g4d4e37dbf1
LinkGraphJob::NodeAnnotation Struct Reference

Annotation for a link graph node. More...

#include <linkgraphjob.h>

Public Member Functions

 NodeAnnotation (const LinkGraph::BaseNode &node, size_t size)
EdgeAnnotationoperator[] (NodeID to)
 Retrieve an edge starting at this node.
const EdgeAnnotationoperator[] (NodeID to) const
 Retrieve an edge starting at this node.
uint DemandTo (NodeID to) const
 Get the transport demand between end the points of the edge.
uint UnsatisfiedDemandTo (NodeID to) const
 Get the transport demand that hasn't been satisfied by flows, yet.
void SatisfyDemandTo (NodeID to, uint demand)
 Satisfy some demand.
void DeliverSupply (NodeID to, uint amount)
 Deliver some supply, adding demand to the respective edge.

Data Fields

const LinkGraph::BaseNodebase
 Reference to the node that is annotated.
uint undelivered_supply = 0
 Amount of supply that hasn't been distributed yet.
PathList paths {}
 Paths through this node, sorted so that those with flow == 0 are in the back.
FlowStatMap flows {}
 Planned flows to other nodes.
std::vector< EdgeAnnotationedges {}
 Annotations for all edges originating at this node.
std::vector< DemandAnnotationdemands {}
 Annotations for the demand to all other nodes.

Detailed Description

Annotation for a link graph node.

Definition at line 79 of file linkgraphjob.h.

Constructor & Destructor Documentation

◆ NodeAnnotation()

LinkGraphJob::NodeAnnotation::NodeAnnotation ( const LinkGraph::BaseNode & node,
size_t size )
inline

Definition at line 89 of file linkgraphjob.h.

Member Function Documentation

◆ DeliverSupply()

void LinkGraphJob::NodeAnnotation::DeliverSupply ( NodeID to,
uint amount )
inline

Deliver some supply, adding demand to the respective edge.

Parameters
toDestination for supply.
amountAmount of supply to be delivered.

Definition at line 150 of file linkgraphjob.h.

◆ DemandTo()

uint LinkGraphJob::NodeAnnotation::DemandTo ( NodeID to) const
inline

Get the transport demand between end the points of the edge.

Parameters
toRemote end of the edge.
Returns
Demand.

Definition at line 125 of file linkgraphjob.h.

◆ operator[]() [1/2]

EdgeAnnotation & LinkGraphJob::NodeAnnotation::operator[] ( NodeID to)
inline

Retrieve an edge starting at this node.

Parameters
toRemote end of the edge.
Returns
Edge between this node and "to".

Definition at line 101 of file linkgraphjob.h.

References LinkGraphJob::EdgeAnnotation::base, and LinkGraph::BaseEdge::dest_node.

◆ operator[]() [2/2]

const EdgeAnnotation & LinkGraphJob::NodeAnnotation::operator[] ( NodeID to) const
inline

Retrieve an edge starting at this node.

Parameters
toRemote end of the edge.
Returns
Edge between this node and "to".

Definition at line 113 of file linkgraphjob.h.

References LinkGraphJob::EdgeAnnotation::base, and LinkGraph::BaseEdge::dest_node.

◆ SatisfyDemandTo()

void LinkGraphJob::NodeAnnotation::SatisfyDemandTo ( NodeID to,
uint demand )
inline

Satisfy some demand.

Parameters
toRemote end of the edge.
demandDemand to be satisfied.

Definition at line 139 of file linkgraphjob.h.

References demands.

◆ UnsatisfiedDemandTo()

uint LinkGraphJob::NodeAnnotation::UnsatisfiedDemandTo ( NodeID to) const
inline

Get the transport demand that hasn't been satisfied by flows, yet.

Parameters
toRemote end of the edge.
Returns
Unsatisfied demand.

Definition at line 132 of file linkgraphjob.h.

Field Documentation

◆ base

const LinkGraph::BaseNode& LinkGraphJob::NodeAnnotation::base

Reference to the node that is annotated.

Definition at line 80 of file linkgraphjob.h.

Referenced by LinkGraphJob::~LinkGraphJob().

◆ demands

std::vector<DemandAnnotation> LinkGraphJob::NodeAnnotation::demands {}

Annotations for the demand to all other nodes.

Definition at line 87 of file linkgraphjob.h.

Referenced by SatisfyDemandTo().

◆ edges

std::vector<EdgeAnnotation> LinkGraphJob::NodeAnnotation::edges {}

Annotations for all edges originating at this node.

Definition at line 86 of file linkgraphjob.h.

Referenced by LinkGraphJob::~LinkGraphJob().

◆ flows

FlowStatMap LinkGraphJob::NodeAnnotation::flows {}

Planned flows to other nodes.

Definition at line 84 of file linkgraphjob.h.

Referenced by LinkGraphJob::~LinkGraphJob().

◆ paths

PathList LinkGraphJob::NodeAnnotation::paths {}

Paths through this node, sorted so that those with flow == 0 are in the back.

Definition at line 83 of file linkgraphjob.h.

◆ undelivered_supply

uint LinkGraphJob::NodeAnnotation::undelivered_supply = 0

Amount of supply that hasn't been distributed yet.

Definition at line 82 of file linkgraphjob.h.


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