Interface NeighborsPerception

All Superinterfaces:
LaneBasedPerceptionCategory, PerceptionCategory<LaneBasedGTU,​LanePerception>
All Known Implementing Classes:
DirectNeighborsPerception

public interface NeighborsPerception
extends LaneBasedPerceptionCategory

Copyright (c) 2013-2019 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 14 feb. 2017
Author:
Alexander Verbraeck, Peter Knoppers, Wouter Schakel
  • Method Details

    • getFirstLeaders

      Set of leaders on a lane, which is usually 0 or 1, but possibly more in case of a downstream split with no intermediate GTU. This is shown below. Suppose A needs to go straight. If A considers a lane change to the left, both GTUs B (who's tail ~ is still on the straight lane) and C need to be considered for whether it's safe to do so. In case of multiple splits close to one another, the returned set may contain even more than 2 leaders. Leaders are sorted by headway value.
                | |
       _________/B/_____
       _ _?_ _ _~_ _C_ _
       _ _A_ _ _ _ _ _ _
       _________________
       
      Only vehicles who's rear is beyond the own front are considered, no alongside vehicles.

      Parameters:
      lat - LateralDirectionality; LEFT or RIGHT
      Returns:
      list of followers on a lane
      Throws:
      ParameterException - if parameter is not defined
      NullPointerException - if lat is null
      IllegalArgumentException - if lat is NONE
    • getFirstFollowers

      Set of followers on a lane, which is usually 0 or 1, but possibly more in case of an upstream merge with no intermediate GTU. This is shown below. If A considers a lane change to the left, both GTUs B and C need to be considered for whether it's safe to do so. In case of multiple merges close to one another, the returned set may contain even more than 2 followers. Followers are sorted by tailway value.
              | |
              |C| 
       ________\ \______
       _ _B_|_ _ _ _ _?_
       _ _ _|_ _ _ _ _A_ 
       _____|___________
       
      Only vehicles who's front is before the own rear are considered, no alongside vehicles.

      Parameters:
      lat - LateralDirectionality; LEFT or RIGHT
      Returns:
      list of followers on a lane
      Throws:
      ParameterException - if parameter is not defined
      NullPointerException - if lat is null
      IllegalArgumentException - if lat is NONE
    • isGtuAlongside

      Whether there is a GTU alongside, i.e. with overlap, in an adjacent lane.
      Parameters:
      lat - LateralDirectionality; LEFT or RIGHT
      Returns:
      whether there is a GTU alongside, i.e. with overlap, in an adjacent lane
      Throws:
      ParameterException - if parameter is not defined
      NullPointerException - if lat is null
      IllegalArgumentException - if lat is NONE
    • getLeaders

      Set of leaders on a lane, including adjacent GTU's who's FRONT is ahead of the own vehicle FRONT. Leaders are sorted by headway value.
      Parameters:
      lane - RelativeLane; relative lateral lane
      Returns:
      set of leaders on a lane, including adjacent GTU's who's FRONT is ahead of the own vehicle FRONT
    • getFollowers

      Set of followers on a lane, including adjacent GTU's who's FRONT is back of the own vehicle FRONT. Follower are are sorted by distance.
      Parameters:
      lane - RelativeLane; relative lateral lane
      Returns:
      set of followers on a lane, including adjacent GTU's who's FRONT is back of the own vehicle FRONT