""" Lane 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 List class Lane: """ Lane class """ def __init__(self): self._index = None self._allow = None self._disallow = None self._change_left = None self._change_right = None self._speed = None self._width = None @property def index(self): """ Lane index The enumeration index of the lane (0 is the rightmost lane, -1 is the leftmost one) :return: int """ return self._index @index.setter def index(self, value): """ Index setter :param value: int """ self._index = value @property def allow(self) -> List[str]: """ List of allowed vehicle classes :return: [str] """ return self._allow @allow.setter def allow(self, value): """ List of allowed vehicle classes setter :param value: [str] """ self._allow = value @property def disallow(self) -> List[str]: """ List of not allowed vehicle classes :return: [str] """ return self._disallow @disallow.setter def disallow(self, value): """ List of not allowed vehicle classes setter :param value: [str] """ self._disallow = value @property def change_left(self) -> List[str]: """ List of vehicle classes that may change left from this lane :return: [str] """ return self._change_left @change_left.setter def change_left(self, value): """ change_left setter :param value: [str] """ self._change_left = value @property def change_right(self) -> List[str]: """ List of vehicle classes that may change right from this lane :return: [str] """ return self._change_right @change_right.setter def change_right(self, value): """ change_right setter :param value: [str] """ self._change_right = value @property def speed(self): """ Speed in m/s :return: float """ return self._speed @speed.setter def speed(self, value): """ Speed in m/s setter :param value: float """ self._speed = value @property def width(self): """ Width in m :return: float """ return self._width @width.setter def width(self, value): """ Width in m setter :param value: float """ self._width = value