sumolib.net.connection

  1# Eclipse SUMO, Simulation of Urban MObility; see https://eclipse.dev/sumo
  2# Copyright (C) 2011-2026 German Aerospace Center (DLR) and others.
  3# This program and the accompanying materials are made available under the
  4# terms of the Eclipse Public License 2.0 which is available at
  5# https://www.eclipse.org/legal/epl-2.0/
  6# This Source Code may also be made available under the following Secondary
  7# Licenses when the conditions for such availability set forth in the Eclipse
  8# Public License 2.0 are satisfied: GNU General Public License, version 2
  9# or later which is available at
 10# https://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html
 11# SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-or-later
 12
 13# @file    connection.py
 14# @author  Daniel Krajzewicz
 15# @author  Laura Bieker
 16# @author  Karol Stosiek
 17# @author  Michael Behrisch
 18# @author  Jakob Erdmann
 19# @date    2011-11-28
 20
 21from sumolib.net.lane import get_allowed
 22
 23
 24class Connection:
 25    # constants as defined in sumo/src/utils/xml/SUMOXMLDefinitions.cpp
 26    LINKDIR_STRAIGHT = "s"
 27    LINKDIR_TURN = "t"
 28    LINKDIR_TURN_LEFTHAND = "T"
 29    LINKDIR_LEFT = "l"
 30    LINKDIR_RIGHT = "r"
 31    LINKDIR_PARTLEFT = "L"
 32    LINKDIR_PARTRIGHT = "R"
 33
 34    """edge connection for a sumo network"""
 35
 36    def __init__(self, fromEdge, toEdge, fromLane, toLane, direction,
 37                 tls, tllink, tllink2, allow, disallow, state, viaLaneID=None):
 38        self._from = fromEdge
 39        self._to = toEdge
 40        self._fromLane = fromLane
 41        self._toLane = toLane
 42        self._direction = direction
 43        self._tls = tls
 44        self._tlLink = tllink
 45        self._tlLink2 = tllink2
 46        self._state = state
 47        self._via = viaLaneID
 48        self._allowed = get_allowed(allow, disallow)
 49        self._params = {}
 50
 51    def __str__(self):
 52        return '<connection from="%s" to="%s" fromLane="%s" toLane="%s" %s%sdirection="%s">' % (
 53            self._from.getID(),
 54            self._to.getID(),
 55            self._fromLane.getIndex(),
 56            self._toLane.getIndex(),
 57            ('' if self._tls == '' else 'tl="%s" linkIndex="%s" ' % (self._tls, self._tlLink)),
 58            ('' if self._tlLink2 < 0 else ' linkIndex2="%s" ' % self._tlLink2),
 59            self._direction)
 60
 61    def allows(self, vClass):
 62        """true if this connection allows the given vehicle class"""
 63        if vClass is None or vClass == "ignoring":
 64            return True
 65        return vClass in self._allowed
 66
 67    def setParam(self, key, value):
 68        self._params[key] = value
 69
 70    def getParam(self, key, default=None):
 71        return self._params.get(key, default)
 72
 73    def getParams(self):
 74        return self._params
 75
 76    def getFrom(self):
 77        return self._fromLane.getEdge()
 78
 79    def getTo(self):
 80        return self._toLane.getEdge()
 81
 82    def getFromLane(self):
 83        return self._fromLane
 84
 85    def getToLane(self):
 86        return self._toLane
 87
 88    def getViaLaneID(self):
 89        return self._via
 90
 91    def getDirection(self):
 92        return self._direction
 93
 94    def getTLSID(self):
 95        return self._tls
 96
 97    def getTLLinkIndex(self):
 98        return self._tlLink
 99
100    def getTLLinkIndex2(self):
101        return self._tlLink2
102
103    def getJunctionIndex(self):
104        return self._from.getToNode().getLinkIndex(self)
105
106    def getJunction(self):
107        return self._from.getToNode()
108
109    def getState(self):
110        return self._state
class Connection:
 25class Connection:
 26    # constants as defined in sumo/src/utils/xml/SUMOXMLDefinitions.cpp
 27    LINKDIR_STRAIGHT = "s"
 28    LINKDIR_TURN = "t"
 29    LINKDIR_TURN_LEFTHAND = "T"
 30    LINKDIR_LEFT = "l"
 31    LINKDIR_RIGHT = "r"
 32    LINKDIR_PARTLEFT = "L"
 33    LINKDIR_PARTRIGHT = "R"
 34
 35    """edge connection for a sumo network"""
 36
 37    def __init__(self, fromEdge, toEdge, fromLane, toLane, direction,
 38                 tls, tllink, tllink2, allow, disallow, state, viaLaneID=None):
 39        self._from = fromEdge
 40        self._to = toEdge
 41        self._fromLane = fromLane
 42        self._toLane = toLane
 43        self._direction = direction
 44        self._tls = tls
 45        self._tlLink = tllink
 46        self._tlLink2 = tllink2
 47        self._state = state
 48        self._via = viaLaneID
 49        self._allowed = get_allowed(allow, disallow)
 50        self._params = {}
 51
 52    def __str__(self):
 53        return '<connection from="%s" to="%s" fromLane="%s" toLane="%s" %s%sdirection="%s">' % (
 54            self._from.getID(),
 55            self._to.getID(),
 56            self._fromLane.getIndex(),
 57            self._toLane.getIndex(),
 58            ('' if self._tls == '' else 'tl="%s" linkIndex="%s" ' % (self._tls, self._tlLink)),
 59            ('' if self._tlLink2 < 0 else ' linkIndex2="%s" ' % self._tlLink2),
 60            self._direction)
 61
 62    def allows(self, vClass):
 63        """true if this connection allows the given vehicle class"""
 64        if vClass is None or vClass == "ignoring":
 65            return True
 66        return vClass in self._allowed
 67
 68    def setParam(self, key, value):
 69        self._params[key] = value
 70
 71    def getParam(self, key, default=None):
 72        return self._params.get(key, default)
 73
 74    def getParams(self):
 75        return self._params
 76
 77    def getFrom(self):
 78        return self._fromLane.getEdge()
 79
 80    def getTo(self):
 81        return self._toLane.getEdge()
 82
 83    def getFromLane(self):
 84        return self._fromLane
 85
 86    def getToLane(self):
 87        return self._toLane
 88
 89    def getViaLaneID(self):
 90        return self._via
 91
 92    def getDirection(self):
 93        return self._direction
 94
 95    def getTLSID(self):
 96        return self._tls
 97
 98    def getTLLinkIndex(self):
 99        return self._tlLink
100
101    def getTLLinkIndex2(self):
102        return self._tlLink2
103
104    def getJunctionIndex(self):
105        return self._from.getToNode().getLinkIndex(self)
106
107    def getJunction(self):
108        return self._from.getToNode()
109
110    def getState(self):
111        return self._state
Connection( fromEdge, toEdge, fromLane, toLane, direction, tls, tllink, tllink2, allow, disallow, state, viaLaneID=None)
37    def __init__(self, fromEdge, toEdge, fromLane, toLane, direction,
38                 tls, tllink, tllink2, allow, disallow, state, viaLaneID=None):
39        self._from = fromEdge
40        self._to = toEdge
41        self._fromLane = fromLane
42        self._toLane = toLane
43        self._direction = direction
44        self._tls = tls
45        self._tlLink = tllink
46        self._tlLink2 = tllink2
47        self._state = state
48        self._via = viaLaneID
49        self._allowed = get_allowed(allow, disallow)
50        self._params = {}
LINKDIR_STRAIGHT = 's'
LINKDIR_TURN = 't'
LINKDIR_TURN_LEFTHAND = 'T'
LINKDIR_LEFT = 'l'
LINKDIR_RIGHT = 'r'
LINKDIR_PARTLEFT = 'L'
LINKDIR_PARTRIGHT = 'R'

edge connection for a sumo network

def allows(self, vClass):
62    def allows(self, vClass):
63        """true if this connection allows the given vehicle class"""
64        if vClass is None or vClass == "ignoring":
65            return True
66        return vClass in self._allowed

true if this connection allows the given vehicle class

def setParam(self, key, value):
68    def setParam(self, key, value):
69        self._params[key] = value
def getParam(self, key, default=None):
71    def getParam(self, key, default=None):
72        return self._params.get(key, default)
def getParams(self):
74    def getParams(self):
75        return self._params
def getFrom(self):
77    def getFrom(self):
78        return self._fromLane.getEdge()
def getTo(self):
80    def getTo(self):
81        return self._toLane.getEdge()
def getFromLane(self):
83    def getFromLane(self):
84        return self._fromLane
def getToLane(self):
86    def getToLane(self):
87        return self._toLane
def getViaLaneID(self):
89    def getViaLaneID(self):
90        return self._via
def getDirection(self):
92    def getDirection(self):
93        return self._direction
def getTLSID(self):
95    def getTLSID(self):
96        return self._tls
def getTLLinkIndex(self):
98    def getTLLinkIndex(self):
99        return self._tlLink
def getTLLinkIndex2(self):
101    def getTLLinkIndex2(self):
102        return self._tlLink2
def getJunctionIndex(self):
104    def getJunctionIndex(self):
105        return self._from.getToNode().getLinkIndex(self)
def getJunction(self):
107    def getJunction(self):
108        return self._from.getToNode()
def getState(self):
110    def getState(self):
111        return self._state