system_assignation/city_model_structure/transport/connection.py

122 lines
2.2 KiB
Python
Raw Normal View History

"""
Connection module
SPDX - License - Identifier: LGPL - 3.0 - or -later
Copyright © 2020 Project Author Pilar Monsalvete Alvarez de Uribarri pilar.monsalvete@concordia.ca
Contributor Milad milad.aghamohamadnia@concordia.ca
"""
from typing import TypeVar
Edge = TypeVar['Edge']
Lane = TypeVar['Lane']
class Connection:
"""
Connection class
"""
def __init__(self):
self._from_edge = None
self._to_edge = None
self._from_lane = None
self._to_lane = None
self._pass = None
self._keep_clear = None
@property
def from_edge(self) -> Edge:
"""
Edge the vehicle leaves
:return: Edge
"""
return self._from_edge
@from_edge.setter
def from_edge(self, value):
"""
Edge the vehicle leaves setter
:param value: Edge
"""
self._from_edge = value
@property
def to_edge(self) -> Edge:
"""
Edge the vehicle reaches
:return: Edge
"""
return self._to_edge
@to_edge.setter
def to_edge(self, value):
"""
Edge the vehicle reaches setter
:param value: Edge
"""
self._to_edge = value
@property
def from_lane(self) -> Lane:
"""
Incoming lane
:return: Lane
"""
return self._to_lane
@from_lane.setter
def from_lane(self, value):
"""
Incoming lane setter
:param value: Lane
"""
self._from_lane = value
@property
def to_lane(self) -> Lane:
"""
Outgoing lane
:return: Lane
"""
return self._to_lane
@to_lane.setter
def to_lane(self, value):
"""
Outgoing lane setter
:param value: Lane
"""
self._to_lane = value
@property
def pass_not_wait(self):
"""
if set, vehicles which pass this (lane-2-lane) connection will not wait
:return: bool
"""
return self._pass
@pass_not_wait.setter
def pass_not_wait(self, value):
"""
pass_not_wait setter
:param value: bool
"""
self._pass = value
@property
def keep_clear(self):
"""
if set to false, vehicles which pass this (lane-2-lane) connection will not worry about blocking the intersection
:return: bool
"""
return self._keep_clear
@keep_clear.setter
def keep_clear(self, value):
"""
keep_clear setter
:param value: bool
"""
self._keep_clear = value