Interface LaneChange.LaneChangePath

All Known Implementing Classes:
LaneChange.LaneChangePath.InterpolatedLaneChangePath, LaneChange.LaneChangePath.SequentialLaneChangePath
Enclosing class:
LaneChange

public static interface LaneChange.LaneChangePath
Provides a (partial) path during lane changes.

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

Author:
Alexander Verbraeck, Peter Knoppers, Wouter Schakel
  • Field Details

    • SINE_INTERP

      static final LaneChange.LaneChangePath SINE_INTERP
      Sine-shaped interpolation between center lines.
    • LINEAR

      static final LaneChange.LaneChangePath LINEAR
      Linear interpolation between center lines.
    • BEZIER

      static final LaneChange.LaneChangePath BEZIER
      A simple Bezier curve directly to the lane change target position.
    • SINE

      static final LaneChange.LaneChangePath SINE
      The target point (including rotation) for the coming time step is based on a sine wave.
    • POLY3

      static final LaneChange.LaneChangePath POLY3
      The target point (including rotation) for the coming time step is based on a 3rd-degree polynomial.
  • Method Details

    • getPath

      OtsLine2d getPath(org.djunits.value.vdouble.scalar.Duration timeStep, org.djunits.value.vdouble.scalar.Length planDistance, org.djunits.value.vdouble.scalar.Speed meanSpeed, LanePosition from, org.djutils.draw.point.OrientedPoint2d startPosition, LateralDirectionality laneChangeDirection, OtsLine2d fromLine, OtsLine2d toLine, org.djunits.value.vdouble.scalar.Duration laneChangeDuration, double lcFraction) throws OtsGeometryException
      Returns a (partial) path for a lane change. The method is called both at the start and during a lane change, and should return a valid path. This path should at least have a length of planDistance, unless the lane change will be finished during the coming time step. In that case, the caller of this method is to lengthen the path along the center line of the target lane.
      Parameters:
      timeStep - Duration; time step
      planDistance - Length; distance covered during the operational plan
      meanSpeed - Speed; mean speed during time step
      from - LanePosition; current position on the from-lanes
      startPosition - OrientedPoint2d; current 2D position
      laneChangeDirection - LateralDirectionality; lane change direction
      fromLine - OtsLine2d; from line
      toLine - OtsLine2d; to line
      laneChangeDuration - Duration; current considered duration of the entire lane change
      lcFraction - double; fraction of lane change done so far
      Returns:
      OtsLine2d a (partial) path for a lane change
      Throws:
      OtsGeometryException - on wrong fractional position