View Javadoc
1   package org.opentrafficsim.road.gtu.lane.tactical.lmrs;
2   
3   import org.djunits.value.vdouble.scalar.Speed;
4   import org.opentrafficsim.base.parameters.ParameterException;
5   import org.opentrafficsim.base.parameters.Parameters;
6   import org.opentrafficsim.core.gtu.GTUException;
7   import org.opentrafficsim.core.gtu.plan.operational.OperationalPlanException;
8   import org.opentrafficsim.road.gtu.lane.LaneBasedGTU;
9   import org.opentrafficsim.road.gtu.lane.perception.LanePerception;
10  import org.opentrafficsim.road.gtu.lane.perception.RelativeLane;
11  import org.opentrafficsim.road.gtu.lane.plan.operational.SimpleOperationalPlan;
12  import org.opentrafficsim.road.gtu.lane.tactical.following.CarFollowingModel;
13  import org.opentrafficsim.road.network.speed.SpeedLimitInfo;
14  
15  /**
16   * <p>
17   * Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
18   * BSD-style license. See <a href="http://opentrafficsim.org/node/13">OpenTrafficSim License</a>.
19   * <p>
20   * @version $Revision$, $LastChangedDate$, by $Author$, initial version 27 jan. 2017 <br>
21   * @author <a href="http://www.tbm.tudelft.nl/averbraeck">Alexander Verbraeck</a>
22   * @author <a href="http://www.tudelft.nl/pknoppers">Peter Knoppers</a>
23   * @author <a href="http://www.transport.citg.tudelft.nl">Wouter Schakel</a>
24   */
25  public interface AccelerationIncentive
26  {
27  
28      /**
29       * Determine acceleration.
30       * @param simplePlan SimpleOperationalPlan; simple plan to set the acceleration
31       * @param lane RelativeLane; lane on which to consider the acceleration
32       * @param gtu LaneBasedGTU; gtu
33       * @param perception LanePerception; perception
34       * @param carFollowingModel CarFollowingModel; car-following model
35       * @param speed Speed; current speed
36       * @param params Parameters; parameters
37       * @param speedLimitInfo SpeedLimitInfo; speed limit info
38       * @throws OperationalPlanException in case of an error
39       * @throws ParameterException on missing parameter
40       * @throws GTUException when there is a problem with the state of the GTU when planning a path
41       */
42      void accelerate(SimpleOperationalPlan simplePlan, RelativeLane lane, LaneBasedGTU gtu, LanePerception perception,
43              CarFollowingModel carFollowingModel, Speed speed, Parameters params, SpeedLimitInfo speedLimitInfo)
44              throws OperationalPlanException, ParameterException, GTUException;
45  
46  }