1 package org.opentrafficsim.road.gtu.generator;
2
3 import org.djunits.value.vdouble.scalar.Speed;
4 import org.opentrafficsim.core.distributions.Generator;
5 import org.opentrafficsim.core.distributions.ProbabilityException;
6 import org.opentrafficsim.core.gtu.behavioralcharacteristics.ParameterException;
7
8 import nl.tudelft.simulation.jstats.streams.StreamInterface;
9
10
11
12
13
14
15
16
17
18
19
20
21
22 public class SpeedGenerator implements Generator<Speed>
23 {
24
25
26 private final Speed minSpeed;
27
28
29 private final Speed deltaSpeed;
30
31
32 private final StreamInterface stream;
33
34
35
36
37
38
39 public SpeedGenerator(final Speed minSpeed, final Speed maxSpeed, final StreamInterface stream)
40 {
41 this.minSpeed = minSpeed;
42 this.deltaSpeed = maxSpeed.minus(minSpeed);
43 this.stream = stream;
44 }
45
46
47 @Override
48 public Speed draw() throws ProbabilityException, ParameterException
49 {
50 return this.minSpeed.plus(this.deltaSpeed.multiplyBy(this.stream.nextDouble()));
51 }
52
53 }