View Javadoc
1   package org.opentrafficsim.road.definitions;
2   
3   import java.util.Locale;
4   
5   import org.opentrafficsim.core.definitions.DefaultsNl;
6   import org.opentrafficsim.road.network.lane.LaneType;
7   import org.opentrafficsim.road.network.lane.object.detector.DetectorType;
8   
9   /**
10   * Road defaults for locale nl_NL.
11   * <p>
12   * Copyright (c) 2022-2023 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved. <br>
13   * BSD-style license. See <a href="https://opentrafficsim.org/docs/license.html">OpenTrafficSim License</a>.
14   * </p>
15   * @author <a href="https://github.com/averbraeck">Alexander Verbraeck</a>
16   * @author <a href="https://tudelft.nl/staff/p.knoppers-1">Peter Knoppers</a>
17   * @author <a href="https://dittlab.tudelft.nl">Wouter Schakel</a>
18   */
19  public class DefaultsRoadNl extends DefaultsRoad
20  {
21  
22      // TODO: prepend all type id's with "NL."
23  
24      /**
25       * Constructor setting locale nl_NL.
26       */
27      DefaultsRoadNl()
28      {
29          super(new Locale("nl", "NL"));
30      }
31  
32      /***************************************************************************************/
33      /**************************************** LANE *****************************************/
34      /***************************************************************************************/
35  
36      /** This is here only because it is in the file default_lanetypes.xml as a default, i.e the parser needs to find it. */
37      @Deprecated
38      public static final LaneType NONE = new LaneType("NONE");
39  
40      /** For two-way roads. */
41      public static final LaneType TWO_WAY_LANE = new LaneType("TWO_WAY_LANE");
42  
43      /** Provincial road (provinciaalse weg / N-weg, 80km/h). */
44      public static final LaneType PROVINCIAL_ROAD = new LaneType("PROVINCIAL_ROAD", TWO_WAY_LANE);
45  
46      /** Rural (landelijk, 60km/h). */
47      public static final LaneType RURAL_ROAD = new LaneType("RURAL_ROAD", TWO_WAY_LANE);
48  
49      /** Urban (stedelijk, 50km/h). */
50      public static final LaneType URBAN_ROAD = new LaneType("URBAN_ROAD", TWO_WAY_LANE);
51  
52      /** Residential (woonerf, 30km/h). */
53      public static final LaneType RESIDENTIAL_ROAD = new LaneType("RESIDENTIAL_ROAD", TWO_WAY_LANE);
54  
55      /** For one-way roads. */
56      public static final LaneType ONE_WAY_LANE = new LaneType("ONE_WAY_LANE");
57  
58      /** Freeway (snelweg, 130km/h). */
59      public static final LaneType FREEWAY = new LaneType("FREEWAY", ONE_WAY_LANE);
60  
61      /** Highway (autoweg, 100km/h). */
62      public static final LaneType HIGHWAY = new LaneType("HIGHWAY", ONE_WAY_LANE);
63  
64      /** Bus lane. */
65      public static final LaneType BUS_LANE = new LaneType("BUS_LANE");
66  
67      /** Moped path (fiets-/bromfietspad). */
68      public static final LaneType MOPED_PATH = new LaneType("MOPED_PATH");
69  
70      /** Bicycle path (fietspad). */
71      public static final LaneType BICYCLE_PATH = new LaneType("BICYCLE_PATH", MOPED_PATH);
72  
73      /** Footpath (voetpad). */
74      public static final LaneType FOOTPATH = new LaneType("FOOTPATH");
75  
76      static
77      {
78          TWO_WAY_LANE.addCompatibleGtuType(DefaultsNl.ROAD_USER);
79          ONE_WAY_LANE.addCompatibleGtuType(DefaultsNl.ROAD_USER);
80          FREEWAY.addIncompatibleGtuType(DefaultsNl.PEDESTRIAN);
81          FREEWAY.addIncompatibleGtuType(DefaultsNl.BICYCLE);
82          HIGHWAY.addIncompatibleGtuType(DefaultsNl.PEDESTRIAN);
83          HIGHWAY.addIncompatibleGtuType(DefaultsNl.BICYCLE);
84          PROVINCIAL_ROAD.addIncompatibleGtuType(DefaultsNl.PEDESTRIAN);
85          PROVINCIAL_ROAD.addIncompatibleGtuType(DefaultsNl.BICYCLE);
86          BUS_LANE.addCompatibleGtuType(DefaultsNl.BUS);
87          MOPED_PATH.addCompatibleGtuType(DefaultsNl.BICYCLE);
88          BICYCLE_PATH.addIncompatibleGtuType(DefaultsNl.MOPED);
89          FOOTPATH.addCompatibleGtuType(DefaultsNl.PEDESTRIAN);
90      }
91  
92      /***************************************************************************************/
93      /************************************** DETECTOR ***************************************/
94      /***************************************************************************************/
95  
96      /** Makes a Detector compatible with all road users, e.g. for SinkDetector, DestinationDetector. */
97      public static final DetectorType ROAD_USERS = new DetectorType("ROAD_USERS");
98  
99      /** Makes a Detector compatible with all vehicles, e.g. for loop detectors. */
100     public static final DetectorType VEHICLES = new DetectorType("VEHICLES");
101 
102     /** Loop detector type. */
103     public static final DetectorType LOOP_DETECTOR = new DetectorType("LOOP_DETECTOR", VEHICLES);
104 
105     /** Traffic light detector type. */
106     public static final DetectorType TRAFFIC_LIGHT = new DetectorType("TRAFFIC_LIGHT", LOOP_DETECTOR);
107 
108     static
109     {
110         ROAD_USERS.addCompatibleGtuType(DefaultsNl.ROAD_USER);
111         VEHICLES.addCompatibleGtuType(DefaultsNl.VEHICLE);
112         TRAFFIC_LIGHT.addCompatibleGtuType(DefaultsNl.BICYCLE);
113     }
114 }