|
| Street (Id id, const Street< Id, Size > &) |
| Construct a new Street object starting from an existing street.
|
|
| Street (Id id, std::pair< Id, Id > nodePair) |
| Construct a new Street object.
|
|
| Street (Id id, Size capacity, double len, std::pair< Id, Id > nodePair) |
| Construct a new Street object.
|
|
| Street (Id id, Size capacity, double len, double maxSpeed, std::pair< Id, Id > nodePair) |
| Construct a new Street object.
|
|
void | setId (Id id) |
| Set the street's id.
|
|
void | setCapacity (Size capacity) |
| Set the street's capacity.
|
|
void | setTransportCapacity (Size capacity) |
| Set the street's transport capacity.
|
|
void | setLength (double len) |
| Set the street's length.
|
|
void | setQueue (dsm::queue< Size > queue) |
| Set the street's queue.
|
|
void | setNodePair (Id node1, Id node2) |
| Set the street's node pair.
|
|
void | setNodePair (const Node< Id, Size > &node1, const Node< Id, Size > &node2) |
| Set the street's node pair.
|
|
void | setNodePair (std::pair< Id, Id > pair) |
| Set the street's node pair.
|
|
void | setMaxSpeed (double speed) |
| Set the street's speed limit.
|
|
void | setAngle (std::pair< double, double > srcNode, std::pair< double, double > dstNode) |
| Set the street's angle.
|
|
void | setAngle (double angle) |
| Set the street's angle.
|
|
Id | id () const |
| Get the street's id.
|
|
Size | capacity () const |
| Get the street's capacity.
|
|
Size | transportCapacity () const |
| Get the street's transport capacity.
|
|
double | length () const |
| Get the street's length.
|
|
const std::set< Id > & | waitingAgents () const |
| Get the street's waiting agents.
|
|
const dsm::queue< Size > & | queue () const |
| Get the street's queue.
|
|
const std::pair< Id, Id > & | nodePair () const |
| Get the street's node pair.
|
|
Size | nAgents () const |
| Get the number of agents on the street.
|
|
double | density () const |
| Get the street's density in .
|
|
double | normDensity () const |
| Get the street's normalized density.
|
|
bool | isFull () const |
| Check if the street is full.
|
|
double | maxSpeed () const |
| Get the street's speed limit.
|
|
double | angle () const |
| Get the street's angle.
|
|
virtual void | addAgent (Id agentId) |
|
void | enqueue (Id agentId) |
| Add an agent to the street's queue.
|
|
virtual std::optional< Id > | dequeue () |
| Remove an agent from the street's queue.
|
|
virtual bool | isSpire () const |
| Check if the street is a spire.
|
|
template<typename Id, typename Size>
requires (std::unsigned_integral<Id> && std::unsigned_integral<Size>)
class dsm::Street< Id, Size >
The Street class represents a street in the network.
- Template Parameters
-
Id,The | type of the street's id. It must be an unsigned integral type. |
Size,The | type of the street's capacity. It must be an unsigned integral type. |
template<typename Id , typename Size >
requires (std::unsigned_integral<Id> && std::unsigned_integral<Size>)
Construct a new Street object starting from an existing street.
The new street has different id but same capacity, length, speed limit, and node pair as the existing street.
- Parameters
-
Street | The existing street |
id | The new street's id |
template<typename Id , typename Size >
requires (std::unsigned_integral<Id> && std::unsigned_integral<Size>)
dsm::Street< Id, Size >::Street |
( |
Id | id, |
|
|
Size | capacity, |
|
|
double | len, |
|
|
std::pair< Id, Id > | nodePair ) |
Construct a new Street object.
The default capacity is 1, the default length is 1, and the default speed limit is 50 km/h, i.e. 13.8888888889 m/s.
- Parameters
-
id | The street's id |
capacity | The street's capacity |
len | The street's length |
nodePair | The street's node pair |