SUMO - Simulation of Urban MObility
|
Computes lane-2-lane connections. More...
#include <NBNode.h>
Public Member Functions | |
ApproachingDivider (EdgeVector *approaching, NBEdge *currentOutgoing, const bool buildCrossingsAndWalkingAreas) | |
Constructor. More... | |
void | execute (const unsigned int src, const unsigned int dest) |
unsigned int | numAvailableLanes () const |
std::deque< int > * | spread (const std::vector< int > &approachingLanes, int dest) const |
~ApproachingDivider () | |
Destructor. More... | |
Private Attributes | |
EdgeVector * | myApproaching |
The list of edges that approach the current edge. More... | |
std::vector< unsigned int > | myAvailableLanes |
The available lanes to which connections shall be built. More... | |
NBEdge * | myCurrentOutgoing |
The approached current edge. More... | |
Computes lane-2-lane connections.
Being a bresenham-callback, this class computes which lanes are approached by the current lane (first callback parameter). The second callback parameter is the destination lane that is the middle of the computed lanes. The lanes are spreaded from this middle position both to left and right but may also be transposed in full when there is not enough space.
NBNode::ApproachingDivider::ApproachingDivider | ( | EdgeVector * | approaching, |
NBEdge * | currentOutgoing, | ||
const bool | buildCrossingsAndWalkingAreas | ||
) |
Constructor.
[in] | approaching | The list of the edges that approach the outgoing edge |
[in] | currentOutgoing | The outgoing edge |
Definition at line 95 of file NBNode.cpp.
References NBEdge::getNumLanes(), NBEdge::getPermissions(), isForbidden(), myApproaching, myAvailableLanes, myCurrentOutgoing, and SVC_PEDESTRIAN.
NBNode::ApproachingDivider::~ApproachingDivider | ( | ) |
Destructor.
Definition at line 125 of file NBNode.cpp.
|
virtual |
the bresenham-callback
Implements Bresenham::BresenhamCallBack.
Definition at line 129 of file NBNode.cpp.
References NBEdge::getConnectionLanes(), NBEdge::L2L_COMPUTED, NBEdge::LANES2LANES_DONE, and NBEdge::LANES2LANES_USER.
|
inline |
Definition at line 116 of file NBNode.h.
Referenced by NBNode::computeLanes2Lanes().
std::deque< int > * NBNode::ApproachingDivider::spread | ( | const std::vector< int > & | approachingLanes, |
int | dest | ||
) | const |
the method that spreads the wished number of lanes from the the lane given by the bresenham-call to both left and right
Definition at line 155 of file NBNode.cpp.
|
private |
The list of edges that approach the current edge.
Definition at line 97 of file NBNode.h.
Referenced by ApproachingDivider().
|
private |
The available lanes to which connections shall be built.
Definition at line 103 of file NBNode.h.
Referenced by ApproachingDivider().
|
private |
The approached current edge.
Definition at line 100 of file NBNode.h.
Referenced by ApproachingDivider().