""" Crossing 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 Contributor Guille guille.gutierrezmorote@concordia.ca """ from typing import List from city_model_structure.transport.traffic_node import TrafficNode class Crossing(TrafficNode): """ Crossing class """ def __init__(self, name, coordinates, priority, width, shape=None, edges=None): super().__init__(name, coordinates, edges=edges, node_type='Crossing') self._priority = priority self._width = width self._shape = shape @property def priority(self): """ Whether the pedestrians have priority over the vehicles (automatically set to true at tls-controlled intersections). :return: bool """ return self._priority @priority.setter def priority(self, value): """ Priority setter :param value: bool """ self._priority = 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 @property def shape(self) -> List[List[float]]: """ List of positions (positions in m) :return: [[x, y, (z)]] """ return self._shape @shape.setter def shape(self, value): """ List of positions setter :param value: [[x, y, (z)]] """ self._shape = value