Source code for igp2.opendrive.elements.road_record

# -*- coding: utf-8 -*-

__author__ = "Benjamin Orthen, Stefan Urban"
__copyright__ = "TUM Cyber-Physical Systems Group"
__credits__ = ["Priority Program SPP 1835 Cooperative Interacting Automobiles"]
__version__ = "1.2.0"
__maintainer__ = "Sebastian Maierhofer"
__email__ = "commonroad-i06@in.tum.de"
__status__ = "Released"

from abc import ABC


[docs]class RoadRecord(ABC): """Abstract base class to model Records (e.g. ElevationRecord) of the OpenDRIVE specification. These Records all have attributes start_pos, a, b, c, d. The attribute attr which is defined the RoadRecord at a given reference line position is calculated with the following equation: attr = a + b*ds + c*ds² + d*ds³ where ds being the distance along the reference line between the start of the entry and the actual position. ds starts at zero for each RoadRecord. The absolute position of an elevation value is calculated by s = start_pos + ds Attributes: start_pos: Position in curve parameter ds where the RoadRecord starts. polynomial_coefficients: List of values [a, b, c, d, ...] which can be evaluated with an polynomial function. """ def __init__(self, *polynomial_coefficients: float, start_pos: float = None): self._start_pos = start_pos self.polynomial_coefficients = [] for coeff in polynomial_coefficients: self.polynomial_coefficients.append(coeff) @property def start_offset(self) -> float: return self._start_pos