Class RelativeLane

java.lang.Object
org.opentrafficsim.road.gtu.lane.perception.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 Details

  • Constructor Details

    • 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 Details

    • getLateralDirectionality

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

      public final int getNumLanes()
      Returns the number of lanes in the lateral direction.
      Returns:
      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>