/** * Classes to connect driver behavior with many different aspects that govern the desired speed. This constitutes both legal and * physical speed limits.
*
* Each aspect is defined in a {@code SpeedLimitType}, where {@code T} is the class of underlying info, generally referred to * as Speed Info or with the parameter name {@code speedInfo}. Often, {@code T} will be {@code Speed}. For this purpose the * easier {@code SpeedLimitTypeSpeed} should be used. A distinction between legal and non-legal speed limit types * is made. For legal speed limit types implement interface {@code LegalSpeedLimit}. For legal speed limits which * have {@code Speed} as info, extend {@code SpeedLimitTypeSpeedLegal}. A list of default {@code SpeedLimitType}'s can be found * in {@code SpeedLimitTypes}.
*
* At any time a set of {@code SpeedLimitType}'s may be active with an accompanying set of Speed Info's of whatever class. This * information is stored in {@code SpeedLimitInfo}. Based on such a set, driver models can derive current desired speed. *
*
* However, deceleration for lower speed limits ahead may also be required. For this purpose {@code SpeedLimitType}'s and * accompanying Speed Info's are stored together with a distance in a {@code SpeedLimitProspect}. Suggested use of this * class is: * *
 * TODO
 * 
*

* Copyright (c) 2013-2022 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
* BSD-style license. See OpenTrafficSim License. *

* @version $Revision$, $LastChangedDate$, by $Author$, initial version May 3, 2016
* @author Alexander Verbraeck * @author Wouter Schakel */ package org.opentrafficsim.road.network.speed;