43 std::vector<MSLane*> incoming,
44 std::vector<MSLane*> internal)
63 if (parent ==
nullptr) {
67 const int ownLinkIndex = specialLane->
getIncomingLanes()[0].viaLink->getIndex();
72 for (
MSLink*
const link : lane->getLinkCont()) {
73 if (link->getViaLane() !=
nullptr) {
74 const int foeIndex = lane->getIncomingLanes()[0].viaLink->getIndex();
91 if (lane->isCrossing()) {
103 for (
MSLink*
const link : (*i)->getLinkCont()) {
105 int linkIndex = link->getCorrespondingEntryLink()->getIndex();
107 if (linkIndex != -1 && response.test(linkIndex)) {
109 const MSLane* via = link->getViaLane();
110 if (via !=
nullptr && via->
getLinkCont().front()->getViaLane() !=
nullptr) {
124 if (ili.lane->getEdge().isWalkingArea()) {
@ SVC_BICYCLE
vehicle is a bicycle
@ LEFT
The link is a (hard) left direction.
SumoXMLNodeType
Numbers representing special SUMO-XML-attribute values for representing node- (junction-) types used ...
const MSJunction * getToJunction() const
void postloadInit()
initialises the junction after the whole net has been loaded
virtual ~MSInternalJunction()
Destructor.
bool indirectBicycleTurn(const MSLane *specialLane, const MSLink *thisLink, const MSLane *foeFirstPart, const MSLink *foeLink) const
std::vector< MSLane * > myInternalLaneFoes
std::vector< MSLink * > myInternalLinkFoes
MSInternalJunction(const std::string &id, SumoXMLNodeType type, const Position &position, const PositionVector &shape, std::vector< MSLane * > incoming, std::vector< MSLane * > internal)
Constructor.
virtual const MSLogicJunction::LinkBits & getResponseFor(int linkIndex) const
Returns the response for the given link.
Representation of a lane in the micro simulation.
SVCPermissions getPermissions() const
Returns the vehicle class permissions for this lane.
const std::vector< IncomingLaneInfo > & getIncomingLanes() const
MSLane * getLogicalPredecessorLane() const
get the most likely precedecessor lane (sorted using by_connections_to_sorter). The result is cached ...
virtual const PositionVector & getShape(bool) const
MSEdge & getEdge() const
Returns the lane's edge.
const std::vector< MSLink * > & getLinkCont() const
returns the container with all links !!!
MSLane * getLane() const
Returns the connected lane.
MSLane * getViaLane() const
Returns the following inner lane.
void setRequestInformation(int index, bool hasFoes, bool isCont, const std::vector< MSLink * > &foeLinks, const std::vector< MSLane * > &foeLanes, MSLane *internalLaneBefore=0)
Sets the request information.
void addWalkingAreaFoeExit(const MSLane *lane)
add walkingarea as foe (when leaving the junction)
LinkDirection getDirection() const
Returns the direction the vehicle passing this link take.
std::vector< MSLane * > myInternalLanes
list of internal lanes
std::bitset< SUMO_MAX_CONNECTIONS > LinkBits
Container for link response and foes.
std::vector< MSLane * > myIncomingLanes
list of incoming lanes
A junction with right-of-way - rules.
const MSJunctionLogic * getLogic() const
const std::string & getID() const
Returns the id.
A point in 2D or 3D with translation and scaling methods.
bool intersects(const Position &p1, const Position &p2) const
Returns the information whether this list of points interesects the given line.