Eclipse SUMO - Simulation of Urban MObility
|
Computes lane-2-lane connections. More...
#include <NBNode.h>
Public Member Functions | |
ApproachingDivider (const EdgeVector &approaching, NBEdge *currentOutgoing) | |
Constructor. | |
void | execute (const int src, const int dest) |
the bresenham-callback | |
int | numAvailableLanes () const |
@ get number of available lanes | |
std::deque< int > * | spread (int numLanes, int dest) const |
the method that spreads the wished number of lanes from the lane given by the bresenham-call to both left and right | |
~ApproachingDivider () | |
Destructor. | |
Private Member Functions | |
ApproachingDivider & | operator= (const ApproachingDivider &)=delete |
Invalidated assignment operator. | |
Private Attributes | |
const EdgeVector & | myApproaching |
The list of edges that approach the current edge. | |
std::vector< int > | myAvailableLanes |
The available lanes to which connections shall be built. | |
NBEdge * | myCurrentOutgoing |
The approached current edge. | |
std::vector< LinkDirection > | myDirections |
directions from each incoming edge to the outgoing edge | |
bool | myIsBikeEdge |
whether the outgoing edge is exclusively used by bikes | |
int | myNumStraight |
number of straight connections to the outgoing edge | |
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 | ( | const EdgeVector & | approaching, |
NBEdge * | currentOutgoing | ||
) |
Constructor.
[in] | approaching | The list of the edges that approach the outgoing edge |
[in] | currentOutgoing | The outgoing edge |
Definition at line 102 of file NBNode.cpp.
References NBEdge::getNumLanes(), NBEdge::getPermissions(), isForbidden(), myApproaching, myAvailableLanes, myCurrentOutgoing, myDirections, myIsBikeEdge, myNumStraight, STRAIGHT, SVC_BICYCLE, and SVC_PEDESTRIAN.
NBNode::ApproachingDivider::~ApproachingDivider | ( | ) |
Destructor.
Definition at line 139 of file NBNode.cpp.
|
virtual |
the bresenham-callback
Implements Bresenham::BresenhamCallBack.
Definition at line 143 of file NBNode.cpp.
References NBEdge::COMPUTED, DEBUGCOND2, NBEdge::getConnectionLanes(), NBEdge::getID(), NBEdge::getJunctionPriority(), NBEdge::getPermissions(), NBEdge::getStep(), NBEdge::getToNode(), NBNode::getType(), NBNode::isTLControlled(), NBEdge::LANES2LANES_DONE, NBEdge::LANES2LANES_USER, MIN2(), NBEdge::MINOR_ROAD, NBEdge::setConnection(), STRAIGHT, SVC_BICYCLE, toString(), and TRAFFIC_LIGHT_RIGHT_ON_RED.
|
inline |
@ get number of available lanes
Definition at line 97 of file NBNode.h.
References myAvailableLanes.
Referenced by NBNode::computeLanes2Lanes().
|
privatedelete |
Invalidated assignment operator.
std::deque< int > * NBNode::ApproachingDivider::spread | ( | int | numLanes, |
int | dest | ||
) | const |
the method that spreads the wished number of lanes from the lane given by the bresenham-call to both left and right
Definition at line 197 of file NBNode.cpp.
|
private |
The list of edges that approach the current edge.
Definition at line 109 of file NBNode.h.
Referenced by ApproachingDivider().
|
private |
The available lanes to which connections shall be built.
Definition at line 115 of file NBNode.h.
Referenced by ApproachingDivider(), and numAvailableLanes().
|
private |
The approached current edge.
Definition at line 112 of file NBNode.h.
Referenced by ApproachingDivider().
|
private |
directions from each incoming edge to the outgoing edge
Definition at line 118 of file NBNode.h.
Referenced by ApproachingDivider().
|
private |
whether the outgoing edge is exclusively used by bikes
Definition at line 124 of file NBNode.h.
Referenced by ApproachingDivider().
|
private |
number of straight connections to the outgoing edge
Definition at line 121 of file NBNode.h.
Referenced by ApproachingDivider().