1 package org.opentrafficsim.road.gtu.lane.tactical.lmrs;
2
3 import org.opentrafficsim.core.gtu.perception.DirectEgoPerception;
4 import org.opentrafficsim.road.gtu.lane.LaneBasedGTU;
5 import org.opentrafficsim.road.gtu.lane.perception.CategorialLanePerception;
6 import org.opentrafficsim.road.gtu.lane.perception.LanePerception;
7 import org.opentrafficsim.road.gtu.lane.perception.PerceptionFactory;
8 import org.opentrafficsim.road.gtu.lane.perception.categories.DirectDefaultSimplePerception;
9 import org.opentrafficsim.road.gtu.lane.perception.categories.DirectInfrastructurePerception;
10 import org.opentrafficsim.road.gtu.lane.perception.categories.DirectIntersectionPerception;
11 import org.opentrafficsim.road.gtu.lane.perception.categories.DirectNeighborsPerception;
12 import org.opentrafficsim.road.gtu.lane.perception.categories.HeadwayGtuType;
13
14
15
16
17
18
19
20
21
22
23
24
25 public class DefaultLMRSPerceptionFactory implements PerceptionFactory
26 {
27
28
29 @Override
30 public LanePerception generatePerception(final LaneBasedGTU gtu)
31 {
32 LanePerception perception = new CategorialLanePerception(gtu);
33 perception.addPerceptionCategory(new DirectEgoPerception(perception));
34 perception.addPerceptionCategory(new DirectDefaultSimplePerception(perception));
35 perception.addPerceptionCategory(new DirectInfrastructurePerception(perception));
36 perception.addPerceptionCategory(new DirectNeighborsPerception(perception, HeadwayGtuType.WRAP));
37 perception.addPerceptionCategory(new DirectIntersectionPerception(perception, HeadwayGtuType.COPY));
38 return perception;
39 }
40
41 }