1 package org.opentrafficsim.core.network;
2
3 import org.djunits.unit.LengthUnit;
4 import org.djunits.value.vdouble.scalar.Length;
5 import org.opentrafficsim.core.gtu.GTUDirectionality;
6
7
8
9
10
11
12
13
14
15
16
17
18 public class DirectedLinkPosition extends LinkDirection
19 {
20
21
22 private static final long serialVersionUID = 20181022L;
23
24
25 private final double fractionalLongitudinalPosition;
26
27
28
29
30
31
32 public DirectedLinkPosition(final Link link, final double fractionalLongitudinalPosition, final GTUDirectionality direction)
33 {
34 super(link, direction);
35 this.fractionalLongitudinalPosition = fractionalLongitudinalPosition;
36 }
37
38
39
40
41
42
43 public DirectedLinkPosition(final Link link, final Length position, final GTUDirectionality direction)
44 {
45 this(link, position.si / link.getLength().si, direction);
46 }
47
48
49
50
51 public final double getFractionalLongitudinalPosition()
52 {
53 return this.fractionalLongitudinalPosition;
54 }
55
56
57
58
59 public final Length getLongitudinalPosition()
60 {
61 return new Length(getLink().getLength().getSI() * getFractionalLongitudinalPosition(), LengthUnit.METER);
62 }
63
64
65 @Override
66 public String toString()
67 {
68 return "DirectedLinkPosition [link=" + getLink() + ", direction=" + getDirection() + ", fractionalLongitudinalPosition="
69 + this.fractionalLongitudinalPosition + "]";
70 }
71
72 }