Class RelativeLane

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Comparable<RelativeLane>

    public class RelativeLane
    extends java.lang.Object
    implements java.lang.Comparable<RelativeLane>, java.io.Serializable
    Defines a lane relative to the current lane.

    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.

    Version:
    $Revision$, $LastChangedDate$, by $Author$, initial version May 2, 2016
    Author:
    Wouter Schakel
    See Also:
    Serialized Form
    • Field Detail

      • SECOND_LEFT

        public static final RelativeLane SECOND_LEFT
        Second left lane.
      • CURRENT

        public static final RelativeLane CURRENT
        Current lane.
      • SECOND_RIGHT

        public static final RelativeLane SECOND_RIGHT
        Second right lane.
    • Constructor Detail

      • RelativeLane

        public RelativeLane​(LateralDirectionality lat,
                            int numLanes)
        Constructor.
        Parameters:
        lat - LateralDirectionality; lateral direction (use null for the current lane)
        numLanes - int; number of lanes in the lateral direction (not important for the current lane)
        Throws:
        java.lang.IllegalArgumentException - if numLanes is not at least 1, except if lat == null (current lane)
        java.lang.IllegalArgumentException - if numLanes is not 0 if lat == null (current lane)
    • Method Detail

      • getLateralDirectionality

        public final LateralDirectionality getLateralDirectionality()
        Returns the lateral direction.
        Returns:
        LateralDirectionality; the lateral direction
      • getNumLanes

        public final int getNumLanes()
        Returns the number of lanes in the lateral direction.
        Returns:
        int; number of lanes in the lateral direction
      • isSecondLeft

        public final boolean isSecondLeft()
        Returns whether the second left lane is referred to.
        Returns:
        whether the second left lane is referred to
      • isLeft

        public final boolean isLeft()
        Returns whether the left lane is referred to.
        Returns:
        whether the left lane is referred to
      • isCurrent

        public final boolean isCurrent()
        Returns whether the current lane is referred to.
        Returns:
        whether the current lane is referred to
      • isRight

        public final boolean isRight()
        Returns whether the right lane is referred to.
        Returns:
        whether the right lane is referred to
      • isSecondRight

        public final boolean isSecondRight()
        Returns whether the second right lane is referred to.
        Returns:
        whether the second right lane is referred to
      • getLeft

        public final RelativeLane getLeft()
        Returns the left hand relative lane of this relative lane.
        Returns:
        left hand relative lane of this relative lane.
      • getRight

        public final RelativeLane getRight()
        Returns the right hand relative lane of this relative lane.
        Returns:
        right hand relative lane of this relative lane.
      • add

        public final RelativeLane add​(RelativeLane relativeLane)
        Returns the relative lane relative to this lane, for example "the left lane" of "the 3rd right lane" is "the 2nd right lane".
        Parameters:
        relativeLane - RelativeLane; relative lane to get of this lane
        Returns:
        relative lane relative to this lane
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • compareTo

        public final int compareTo​(RelativeLane rel)
        Specified by:
        compareTo in interface java.lang.Comparable<RelativeLane>