public class DownstreamNeighborsIterable extends AbstractPerceptionIterable<HeadwayGTU,LaneBasedGTU,Integer>
boolean ignoreIfUpstream
. This is to deal with the following
situations in case a GTU with it's rear upstream of the considered lane is found:ignoreIfUpstream = true
)
ignoreIfUpstream = false
)
Copyright (c) 2013-2018 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
AbstractPerceptionIterable.Entry
AbstractPerceptionReiterable.PerceptionIterator, AbstractPerceptionReiterable.PrimaryIteratorEntry
PerceptionCollectable.Intermediate<I>, PerceptionCollectable.PerceptionAccumulator<U,I>, PerceptionCollectable.PerceptionCollector<C,U,I>, PerceptionCollectable.PerceptionFinalizer<C,I>
Constructor and Description |
---|
DownstreamNeighborsIterable(LaneBasedGTU perceivingGtu,
LaneRecord<?> root,
Length initialPosition,
Length maxDistance,
RelativePosition relativePosition,
HeadwayGtuType headwayGtuType,
GTU gtu,
RelativeLane lane,
boolean ignoreIfUpstream)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
protected Length |
getDistance(LaneBasedGTU object,
LaneRecord<?> record,
Length position)
Returns the distance to the object.
|
protected AbstractPerceptionIterable.Entry |
getNext(LaneRecord<?> record,
Length position,
Integer counter)
Returns the next object(s) on the lane represented by the record.
|
HeadwayGTU |
perceive(LaneBasedGTU perceivingGtu,
LaneBasedGTU object,
Length distance)
Returns a perceived version of the underlying object.
|
getDx, primaryIterator
collect, first, isEmpty, iterator
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
collect
forEach, spliterator
public DownstreamNeighborsIterable(LaneBasedGTU perceivingGtu, LaneRecord<?> root, Length initialPosition, Length maxDistance, RelativePosition relativePosition, HeadwayGtuType headwayGtuType, GTU gtu, RelativeLane lane, boolean ignoreIfUpstream)
perceivingGtu
- LaneBasedGTU; perceiving GTUroot
- LaneRecord; root recordinitialPosition
- Length; position on the root recordmaxDistance
- Length; maximum distance to searchrelativePosition
- RelativePosition; position to which distance are calculated by subclassesheadwayGtuType
- HeadwayGtuType; type of HeadwayGTU to returngtu
- GTU; the GTU, may be null
lane
- RelativeLane; relative lane (used for a left/right distinction to prevent dead-locks)ignoreIfUpstream
- boolean; whether to ignore GTU that are partially upstream of a recordprotected AbstractPerceptionIterable.Entry getNext(LaneRecord<?> record, Length position, Integer counter) throws GTUException
getNext
in class AbstractPerceptionIterable<HeadwayGTU,LaneBasedGTU,Integer>
record
- R; record representing the lane and directionposition
- Length; position to look beyondcounter
- C; counternull
if noneGTUException
- on any exception in the processprotected Length getDistance(LaneBasedGTU object, LaneRecord<?> record, Length position)
Entry
returned
by getNext
. The two methods need to be consistent with each other.getDistance
in class AbstractPerceptionIterable<HeadwayGTU,LaneBasedGTU,Integer>
object
- U; underlying objectrecord
- R; record representing the lane and directionposition
- Length; position of the object on the lanepublic HeadwayGTU perceive(LaneBasedGTU perceivingGtu, LaneBasedGTU object, Length distance) throws GTUException, ParameterException
perceive
in class AbstractPerceptionReiterable<HeadwayGTU,LaneBasedGTU>
perceivingGtu
- LaneBasedGTU; perceiving GTUobject
- U; underlying objectdistance
- Length; distance to the objectGTUException
- on exceptionParameterException
- on invalid parameter value or missing parameterCopyright © 2014–2018 Delft University of Technology. All rights reserved.