Class LaneBasedOperationalPlan

  • All Implemented Interfaces:
    Serializable

    public class LaneBasedOperationalPlan
    extends OperationalPlan
    An operational plan with some extra information about the lanes and lane changes so this information does not have to be recalculated multiple times. Furthermore, it is quite expensive to check whether a lane change is part of the oprtational plan based on geographical data.

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

    $LastChangedDate: 2015-07-24 02:58:59 +0200 (Fri, 24 Jul 2015) $, @version $Revision: 1147 $, by $Author: averbraeck $, initial version Jan 20, 2016
    Author:
    Alexander Verbraeck, Peter Knoppers
    See Also:
    Serialized Form
    • Constructor Detail

      • LaneBasedOperationalPlan

        public LaneBasedOperationalPlan​(LaneBasedGTU gtu,
                                        OTSLine3D path,
                                        Time startTime,
                                        Speed startSpeed,
                                        List<OperationalPlan.Segment> operationalPlanSegmentList,
                                        boolean deviative)
                                 throws OperationalPlanException
        Construct an operational plan with or without a lane change.
        Parameters:
        gtu - LaneBasedGTU; the GTU for debugging purposes
        path - OTSLine3D; the path to follow from a certain time till a certain time. The path should have <i>at least</i> the length
        startTime - Time; the absolute start time when we start executing the path
        startSpeed - Speed; the GTU speed when we start executing the path
        operationalPlanSegmentList - List<Segment>; the segments that make up the path with an acceleration, constant speed or deceleration profile
        deviative - boolean; whether the path is not along lane center lines
        Throws:
        OperationalPlanException - when the path is too short for the operation
      • LaneBasedOperationalPlan

        public LaneBasedOperationalPlan​(LaneBasedGTU gtu,
                                        DirectedPoint waitPoint,
                                        Time startTime,
                                        Duration duration,
                                        boolean deviative)
                                 throws OperationalPlanException
        Build a plan where the GTU will wait for a certain time. Of course no lane change takes place.
        Parameters:
        gtu - LaneBasedGTU; the GTU for debugging purposes
        waitPoint - DirectedPoint; the point at which the GTU will wait
        startTime - Time; the current time or a time in the future when the plan should start
        duration - Duration; the waiting time
        deviative - boolean; whether the path is not along lane center lines
        Throws:
        OperationalPlanException - when construction of a waiting path fails
    • Method Detail

      • isDeviative

        public final boolean isDeviative()
        Check if we deviate from the center line.
        Returns:
        whether this maneuver involves deviation from the center line.
      • getTotalLengthAlongLane

        public final Length getTotalLengthAlongLane​(LaneBasedGTU gtu)
                                             throws GTUException
        Returns the total length along the reference lane that the GTU travels. In case of a deviative plan this involves projection of the actual path to the lane center lines.
        Parameters:
        gtu - LaneBasedGTU; GTU
        Returns:
        Length; total length along the path
        Throws:
        GTUException - if the GTU has not reference position
      • getDistanceAlongLane

        public final Length getDistanceAlongLane​(LaneBasedGTU gtu,
                                                 DirectedPoint point)
                                          throws GTUException
        Returns the distance along the reference lane that the GTU travels from the current location up to the point.
        Parameters:
        gtu - LaneBasedGTU; GTU
        point - DirectedPoint; point where the GTU is or will be
        Returns:
        Length; total length along the path
        Throws:
        GTUException - if the GTU has not reference position