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-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
-
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
-
Method Summary
Modifier and TypeMethodDescriptiongetPath
(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) 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.
-
Constructor Details
-
InterpolatedLaneChangePath
public InterpolatedLaneChangePath()
-
-
Method Details
-
getPath
public 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 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
- LanePosition; current position on the from-lanesstartPosition
- OrientedPoint2d; current 2D positionlaneChangeDirection
- LateralDirectionality; lane change directionfromLine
- OtsLine2d; from linetoLine
- OtsLine2d; to linelaneChangeDuration
- Duration; current considered duration of the entire lane changelcFraction
- double; fraction of lane change done so far- Returns:
- OtsLine2d 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
-