View Javadoc
1   package org.opentrafficsim.road.network.sampling.data;
2   
3   import java.util.Optional;
4   
5   import org.djunits.unit.DirectionUnit;
6   import org.djunits.value.vfloat.scalar.FloatDirection;
7   import org.djunits.value.vfloat.vector.FloatDirectionVector;
8   import org.opentrafficsim.kpi.sampling.data.ExtendedDataFloat;
9   import org.opentrafficsim.road.network.sampling.GtuDataRoad;
10  
11  /**
12   * Extended data type in sampler to record world direction.
13   * @author wjschakel
14   */
15  public class WorldDirData extends ExtendedDataFloat<DirectionUnit, FloatDirection, FloatDirectionVector, GtuDataRoad>
16  {
17  
18      /**
19       * Constructor.
20       */
21      public WorldDirData()
22      {
23          super("WorldDir", "World direction", FloatDirection.class);
24      }
25  
26      @Override
27      public Optional<FloatDirection> getValue(final GtuDataRoad gtu)
28      {
29          return Optional.ofNullable(convertValue((float) gtu.getGtu().getLocation().dirZ));
30      }
31  
32      @Override
33      protected FloatDirection convertValue(final float value)
34      {
35          return FloatDirection.ofSI(value);
36      }
37  
38      @Override
39      protected FloatDirectionVector convert(final float[] storage)
40      {
41          return new FloatDirectionVector(storage);
42      }
43  
44      @Override
45      public FloatDirection parseValue(final String string)
46      {
47          return FloatDirection.ofSI(Float.valueOf(string));
48      }
49  
50  }