Class LaneBasedGTUGenerator

  • All Implemented Interfaces:
    java.io.Serializable, Locatable, EventProducerInterface, Identifiable, GtuGeneratorQueue

    public class LaneBasedGTUGenerator
    extends EventProducer
    implements java.io.Serializable, Identifiable, GtuGeneratorQueue
    Lane based GTU generator. This generator generates lane based GTUs using a LaneBasedTemplateGTUType. The template is used to generate a set of GTU characteristics at the times implied by the headway generator. These sets are queued until there is sufficient room to construct a GTU at the specified lane locations. The speed of a construction GTU may be reduced to ensure it does not run into its immediate leader GTU.

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

    Version:
    $Revision$, $LastChangedDate$, by $Author$, initial version Mar 8, 2016
    Author:
    Alexander Verbraeck, Peter Knoppers
    See Also:
    Serialized Form
    • Field Detail

      • GTU_GENERATED_EVENT

        public static final EventType GTU_GENERATED_EVENT
        Event of a generated GTU. Payload: LaneBasedIndividualGTU
    • Method Detail

      • setNoLaneChangeDistance

        public void setNoLaneChangeDistance​(Length noLaneChangeDistance)
        Sets the initial distance over which lane changes shouldn't be performed.
        Parameters:
        noLaneChangeDistance - Length; initial distance over which lane changes shouldn't be performed
      • setInstantaneousLaneChange

        public void setInstantaneousLaneChange​(boolean instantaneous)
        Sets whether GTUs will change lane instantaneously.
        Parameters:
        instantaneous - boolean; whether GTUs will change lane instantaneously
      • setErrorHandler

        public void setErrorHandler​(GTUErrorHandler gtuErrorHandler)
        Sets the GTU error handler.
        Parameters:
        gtuErrorHandler - GTUErrorHandler; GTU error handler
      • queueGtu

        public final void queueGtu​(LaneBasedGTUCharacteristics characteristics,
                                   java.util.Set<LaneDirection> position)
        Adds a GTU to the generation queue. This method ignores whether vehicle generation is enabled at the location. This allows an external party to govern (over some time) what vehicles are generated.
        Parameters:
        characteristics - LaneBasedGTUCharacteristics; characteristics of GTU to add to the queue
        position - Set<LaneDirection>; position to generate the GTU at
      • toString

        public final java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • getGeneratedGTUs

        public final long getGeneratedGTUs()
        Returns:
        generatedGTUs.
      • getId

        public final java.lang.String getId()
        Retrieve the id of this LaneBasedGTUGenerator.
        Specified by:
        getId in interface Identifiable
        Returns:
        String; the id of this LaneBasedGTUGenerator
      • disable

        public void disable​(Time start,
                            Time end,
                            java.util.Set<LaneDirection> laneDirections)
                     throws SimRuntimeException
        Disable the vehicle generator during the specific time. Underlying processes such as drawing characteristics and headways are continued, but simply will not result in the queuing of the GTU.
        Parameters:
        start - Time; start time
        end - Time; end time
        laneDirections - Set<LaneDirection>; lanes to disable generation on
        Throws:
        SimRuntimeException - if time is incorrect
      • getLocation

        public DirectedPoint getLocation()
                                  throws java.rmi.RemoteException
        Specified by:
        getLocation in interface Locatable
        Throws:
        java.rmi.RemoteException
      • getBounds

        public javax.media.j3d.Bounds getBounds()
                                         throws java.rmi.RemoteException
        Specified by:
        getBounds in interface Locatable
        Throws:
        java.rmi.RemoteException
      • getQueueLengths

        public java.util.Map<DirectedPoint,​java.lang.Integer> getQueueLengths()
        Returns the locations and lengths of generation queues. Note that the provided location may differ from the generator location, as one generator may generate GTU's at different points.
        Specified by:
        getQueueLengths in interface GtuGeneratorQueue
        Returns:
        Map<DirectedPoint, Integer>; locations and lengths of generation queues