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 public class SpeedGenerator implements Generator<Speed>
22 {
23
24
25 private final Speed minSpeed;
26
27
28 private final Speed deltaSpeed;
29
30
31 private final StreamInterface stream;
32
33
34
35
36
37
38 public SpeedGenerator(final Speed minSpeed, final Speed maxSpeed, final StreamInterface stream)
39 {
40 this.minSpeed = minSpeed;
41 this.deltaSpeed = maxSpeed.minus(minSpeed);
42 this.stream = stream;
43 }
44
45
46 @Override
47 public Speed draw() throws ProbabilityException, ParameterException
48 {
49 return this.minSpeed.plus(this.deltaSpeed.multiplyBy(this.stream.nextDouble()));
50 }
51
52 }