1 package org.opentrafficsim.road.gtu.generator.headway;
2
3 import java.util.Optional;
4
5 import org.djunits.value.vdouble.scalar.Duration;
6 import org.djunits.value.vdouble.scalar.Frequency;
7 import org.djunits.value.vdouble.vector.DurationVector;
8 import org.djunits.value.vdouble.vector.FrequencyVector;
9 import org.opentrafficsim.road.od.Interpolation;
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public record DemandPattern(FrequencyVector demandVector, DurationVector timeVector, Interpolation interpolation)
25 implements Arrivals
26 {
27
28 @Override
29 public Frequency getFrequency(final Duration time, final boolean sliceStart)
30 {
31 return this.interpolation.interpolateVector(time, this.demandVector, this.timeVector, sliceStart);
32 }
33
34 @Override
35 public Optional<Duration> nextTimeSlice(final Duration time)
36 {
37 for (Duration d : this.timeVector)
38 {
39 if (d.gt(time))
40 {
41 return Optional.of(d);
42 }
43 }
44 return Optional.empty();
45 }
46
47 }