Class DefaultLmrsPerceptionFactory

java.lang.Object
org.opentrafficsim.road.gtu.lane.tactical.lmrs.DefaultLmrsPerceptionFactory
All Implemented Interfaces:
PerceptionFactory, ModelComponentFactory

public class DefaultLmrsPerceptionFactory extends Object implements PerceptionFactory
Perception factory with EgoPerception, InfrastructurePerception, NeighborsPerception and IntersectionPerception.

Copyright (c) 2013-2024 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.

Author:
Alexander Verbraeck, Peter Knoppers, Wouter Schakel
  • Constructor Details

    • DefaultLmrsPerceptionFactory

      public DefaultLmrsPerceptionFactory()
  • Method Details

    • generatePerception

      public LanePerception generatePerception(LaneBasedGtu gtu)
      Generate perception.
      Specified by:
      generatePerception in interface PerceptionFactory
      Parameters:
      gtu - LaneBasedGtu; GTU
      Returns:
      perception
    • getParameters

      public org.opentrafficsim.base.parameters.Parameters getParameters() throws org.opentrafficsim.base.parameters.ParameterException
      Returns parameters for the given component. These parameters should contain, and possibly overwrite, parameters from sub-components. A parameter factory at the highest level (strategical planner) may overwrite any parameter. This combination allows that for sub-components, default factories can be used, while the parameter factory only overwrites parameters different for specific GTU types. The default implementation returns all default parameter values declared at the class.

      Conventional use is:
       Parameters parameters = this.subComponent1Factory.getParameters();
       this.subComponent2Factory.getParameters().setAllIn(parameters);
       parameters.setDefaultParameters(componentClass);
       parameters.setDefaultParameters(staticUtilityClass);
       return parameters;
       
      where all parameters used in componentClass are defined or forwarded in componentClass.
       // forwarded
       public static final ParameterTypeAcceleration A = ParameterTypes.A;
       
       // defined
       public static final ParameterTypeDouble FACTOR = new ParameterTypeDouble("factor", "factor on response", 1.0);
       
      The same holds for static utilities that are used. Parameters should be defined at the utility class, and parameters of used utilities should be included.

      Specified by:
      getParameters in interface ModelComponentFactory
      Returns:
      Parameters; parameters for the given component
      Throws:
      org.opentrafficsim.base.parameters.ParameterException - on parameter exception