Files
openttd-android/src/linkgraph/demands.h
Rubidium eaae0bb5e7 Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
2023-07-19 19:30:14 +02:00

44 lines
1.1 KiB
C++

/** @file demands.h Declaration of demand calculating link graph handler. */
#ifndef DEMANDS_H
#define DEMANDS_H
#include "linkgraphjob_base.h"
/**
* Calculate the demands. This class has a state, but is recreated for each
* call to of DemandHandler::Run.
*/
class DemandCalculator {
public:
DemandCalculator(LinkGraphJob &job);
private:
int32_t max_distance; ///< Maximum distance possible on the map.
int32_t mod_dist; ///< Distance modifier, determines how much demands decrease with distance.
int32_t accuracy; ///< Accuracy of the calculation.
template<class Tscaler>
void CalcDemand(LinkGraphJob &job, Tscaler scaler);
};
/**
* Stateless, thread safe demand handler. Doesn't do anything but call DemandCalculator.
*/
class DemandHandler : public ComponentHandler {
public:
/**
* Call the demand calculator on the given component.
* @param job Component to calculate the demands for.
*/
virtual void Run(LinkGraphJob &job) const { DemandCalculator c(job); }
/**
* Virtual destructor has to be defined because of virtual Run().
*/
virtual ~DemandHandler() = default;
};
#endif /* DEMANDS_H */