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 import org.opentrafficsim.road.gtu.lane.perception.categories.neighbors.TaskHeadwayCollector;
11
12
13
14
15
16
17
18
19
20
21
22
23 public class TaskCarFollowing extends TaskHeadwayBased
24 {
25
26
27 public TaskCarFollowing()
28 {
29 super("car-following");
30 }
31
32
33 @Override
34 protected Duration getHeadway(final LanePerception perception, final LaneBasedGTU gtu, final Parameters parameters)
35 {
36 NeighborsPerception neighbors = Try.assign(() -> perception.getPerceptionCategory(NeighborsPerception.class),
37 "NeighborsPerception not available.");
38 return neighbors.getLeaders(RelativeLane.CURRENT).collect(new TaskHeadwayCollector(getSpeed()));
39 }
40
41 }