1 package org.opentrafficsim.road.gtu.lane.perception.mental;
2
3 import org.djunits.value.vdouble.scalar.Duration;
4 import org.djutils.exceptions.Try;
5 import org.opentrafficsim.base.parameters.Parameters;
6 import org.opentrafficsim.road.gtu.lane.LaneBasedGTU;
7 import org.opentrafficsim.road.gtu.lane.perception.LanePerception;
8 import org.opentrafficsim.road.gtu.lane.perception.RelativeLane;
9 import org.opentrafficsim.road.gtu.lane.perception.categories.neighbors.NeighborsPerception;
10
11
12
13
14
15
16
17
18
19
20
21
22 public class TaskCarFollowing extends TaskHeadwayBased
23 {
24
25
26 public TaskCarFollowing()
27 {
28 super("car-following");
29 }
30
31
32 @Override
33 protected Duration getHeadway(final LanePerception perception, final LaneBasedGTU gtu, final Parameters parameters)
34 {
35 NeighborsPerception neighbors = Try.assign(() -> perception.getPerceptionCategory(NeighborsPerception.class),
36 "NeighborsPerception not available.");
37 return neighbors.getLeaders(RelativeLane.CURRENT).collect(new TaskHeadwayCollector(getSpeed()));
38 }
39
40 }