1 package org.opentrafficsim.animation.data;
2
3 import java.awt.Color;
4 import java.awt.geom.RectangularShape;
5
6 import org.djunits.value.vdouble.scalar.Length;
7 import org.opentrafficsim.animation.gtu.colorer.GtuColorerManager;
8 import org.opentrafficsim.base.geometry.OtsLine2d;
9 import org.opentrafficsim.draw.gtu.DefaultCarAnimation.GtuData;
10 import org.opentrafficsim.road.gtu.lane.LaneBasedGtu;
11
12
13
14
15
16
17
18
19
20 public class AnimationGtuData extends AnimationIdentifiableShape<LaneBasedGtu> implements GtuData
21 {
22
23
24 private final GtuColorerManager gtuColorerManager;
25
26
27 private final GtuMarker marker;
28
29
30
31
32
33
34
35 public AnimationGtuData(final GtuColorerManager gtuColorerManager, final LaneBasedGtu gtu, final GtuMarker marker)
36 {
37 super(gtu);
38 this.gtuColorerManager = gtuColorerManager;
39 this.marker = marker;
40 }
41
42 @Override
43 public Color getColor()
44 {
45 return this.gtuColorerManager.getColor(getObject());
46 }
47
48 @Override
49 public Length getLength()
50 {
51 return getObject().getLength();
52 }
53
54 @Override
55 public Length getWidth()
56 {
57 return getObject().getWidth();
58 }
59
60 @Override
61 public Length getFront()
62 {
63 return getObject().getFront().dx();
64 }
65
66 @Override
67 public Length getRear()
68 {
69 return getObject().getRear().dx();
70 }
71
72 @Override
73 public boolean leftIndicatorOn()
74 {
75 return getObject().getTurnIndicatorStatus().isLeftOrBoth();
76 }
77
78 @Override
79 public boolean rightIndicatorOn()
80 {
81 return getObject().getTurnIndicatorStatus().isRightOrBoth();
82 }
83
84 @Override
85 public RectangularShape getMarker()
86 {
87 return this.marker.getShape();
88 }
89
90 @Override
91 public boolean isBrakingLightsOn()
92 {
93 return getObject().isBrakingLightsOn();
94 }
95
96 @Override
97 public String toString()
98 {
99 return "Gtu " + getId();
100 }
101
102 @Override
103 public OtsLine2d getPath()
104 {
105 return getObject().getOperationalPlan().getPath();
106 }
107
108 }