Class LaneChange.LaneChangePath.InterpolatedLaneChangePath
- java.lang.Object
-
- org.opentrafficsim.road.gtu.lane.plan.operational.LaneChange.LaneChangePath.InterpolatedLaneChangePath
-
- All Implemented Interfaces:
LaneChange.LaneChangePath
- Enclosing interface:
- LaneChange.LaneChangePath
public abstract static class LaneChange.LaneChangePath.InterpolatedLaneChangePath extends Object implements LaneChange.LaneChangePath
Helper class for interpolation between the from and to center lines.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, 2019
- Author:
- Alexander Verbraeck, Peter Knoppers, Wouter Schakel
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.opentrafficsim.road.gtu.lane.plan.operational.LaneChange.LaneChangePath
LaneChange.LaneChangePath.InterpolatedLaneChangePath, LaneChange.LaneChangePath.SequentialLaneChangePath
-
-
Field Summary
-
Fields inherited from interface org.opentrafficsim.road.gtu.lane.plan.operational.LaneChange.LaneChangePath
BEZIER, LINEAR, POLY3, SINE, SINE_INTERP
-
-
Constructor Summary
Constructors Constructor Description InterpolatedLaneChangePath()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description OTSLine3D
getPath(Duration timeStep, Length planDistance, Speed meanSpeed, DirectedLanePosition from, DirectedPoint startPosition, LateralDirectionality laneChangeDirection, OTSLine3D fromLine, OTSLine3D toLine, Duration laneChangeDuration, double lcFraction)
Returns a (partial) path for a lane change.(package private) abstract double
lateralFraction(double longitudinalFraction)
Transform longitudinal to lateral fraction.(package private) abstract double
longitudinalFraction(double lateralFraction)
Transform lateral to longitudinal fraction.
-
-
-
Method Detail
-
getPath
public OTSLine3D getPath(Duration timeStep, Length planDistance, Speed meanSpeed, DirectedLanePosition from, DirectedPoint startPosition, LateralDirectionality laneChangeDirection, OTSLine3D fromLine, OTSLine3D toLine, 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 ofplanDistance
, 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.- Specified by:
getPath
in interfaceLaneChange.LaneChangePath
- Parameters:
timeStep
- Duration; time stepplanDistance
- Length; distance covered during the operational planmeanSpeed
- Speed; mean speed during time stepfrom
- DirectedLanePosition; current position on the from-lanesstartPosition
- DirectedPoint; current 2D positionlaneChangeDirection
- LateralDirectionality; lane change directionfromLine
- OTSLine3D; from linetoLine
- OTSLine3D; to linelaneChangeDuration
- Duration; current considered duration of the entire lane changelcFraction
- double; fraction of lane change done so far- Returns:
- OTSLine3D a (partial) path for a lane change
- Throws:
OTSGeometryException
- on wrong fractional position
-
longitudinalFraction
abstract double longitudinalFraction(double lateralFraction)
Transform lateral to longitudinal fraction.- Parameters:
lateralFraction
- double; lateral fraction- Returns:
- double; transformation of lateral to longitudinal fraction
-
lateralFraction
abstract double lateralFraction(double longitudinalFraction)
Transform longitudinal to lateral fraction.- Parameters:
longitudinalFraction
- double; longitudinal fraction- Returns:
- double; transformation of longitudinal to lateral fraction
-
-