Skip to content

Commit fbe2ac3

Browse files
committed
Add density getter to Node class
1 parent e0c90be commit fbe2ac3

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

src/dsm/headers/Node.hpp

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ namespace dsm {
7272
/// @return Size The node's transport capacity
7373
Size transportCapacity() const { return m_transportCapacity; }
7474

75+
virtual double density() const = 0;
7576
virtual bool isFull() const = 0;
7677

7778
virtual bool isIntersection() const noexcept { return false; }
@@ -130,7 +131,11 @@ namespace dsm {
130131
/// @brief Add a street to the node street priorities
131132
/// @param streetId The street's id
132133
void addStreetPriority(Id streetId) { m_streetPriorities.emplace(streetId); }
133-
134+
/// @brief Returns the node's density
135+
/// @return double The node's density
136+
double density() const override {
137+
return static_cast<double>(m_agents.size()) / m_capacity;
138+
}
134139
/// @brief Returns true if the node is full
135140
/// @return bool True if the node is full
136141
bool isFull() const override { return m_agents.size() == this->m_capacity; }
@@ -405,7 +410,11 @@ namespace dsm {
405410
/// @brief Get the node's queue
406411
/// @return dsm::queue<Id> The node's queue
407412
const dsm::queue<Id>& agents() const { return m_agents; }
408-
413+
/// @brief Returns the node's density
414+
/// @return double The node's density
415+
double density() const override {
416+
return static_cast<double>(m_agents.size()) / m_capacity;
417+
}
409418
/// @brief Returns true if the node is full
410419
/// @return bool True if the node is full
411420
bool isFull() const override { return m_agents.size() == this->m_capacity; }

0 commit comments

Comments
 (0)