Class DevDessAnimator<T extends Number & Comparable<T>>

Type Parameters:
T - the time type
All Implemented Interfaces:
Serializable, Runnable, Remote, AnimatorInterface, DessSimulatorInterface<T>, DevsSimulatorInterface<T>, SimulatorInterface<T>, org.djutils.event.EventProducer

public class DevDessAnimator<T extends Number & Comparable<T>> extends DevDessSimulator<T> implements AnimatorInterface
The reference implementation of the animator.

Copyright (c) 2002-2024 Delft University of Technology, Jaffalaan 5, 2628 BX Delft, the Netherlands. All rights reserved. See for project information https://simulation.tudelft.nl. The DSOL project is distributed under a three-clause BSD-style license, which can be found at https://https://simulation.tudelft.nl/dsol/docs/latest/license.html.

Since:
1.5
Author:
Peter Jacobs , Alexander Verbraeck
See Also:
  • Field Details

    • animationDelay

      protected long animationDelay
      AnimationDelay refers to the delay in milliseconds between timeSteps.
  • Constructor Details

    • DevDessAnimator

      public DevDessAnimator(Serializable id, T initialTimeStep) throws SimRuntimeException
      Parameters:
      initialTimeStep - T; the initial time step to use in the integration.
      id - the id of the simulator, used in logging and firing of events.
      Throws:
      SimRuntimeException - when initialTimeStep <= 0, NaN, or Infinity
  • Method Details

    • getAnimationDelay

      public long getAnimationDelay()
      returns the animation delay in milliseconds between each consecutive animation update.
      Specified by:
      getAnimationDelay in interface AnimatorInterface
      Returns:
      long; the animation delay in milliseconds of wallclock time
    • setAnimationDelay

      public void setAnimationDelay(long animationDelay)
      sets the animationDelay using wallclock time in milliseconds.
      Specified by:
      setAnimationDelay in interface AnimatorInterface
      Parameters:
      animationDelay - long; the animation delay in milliseconds
    • updateAnimation

      public void updateAnimation()
      updateAnimation takes care of firing the UPDATE_ANIMATION_EVENT.
      Specified by:
      updateAnimation in interface AnimatorInterface
    • run

      public void run()
      The run method defines the actual time step mechanism of the simulator. The implementation of this method depends on the formalism. Where discrete event formalisms loop over an event list, continuous simulators take predefined time steps. Make sure that:
      - SimulatorInterface.TIME_CHANGED_EVENT is fired when the time of the simulator changes
      - the warmup() method is called when the warmup period has expired (through an event or based on simulation time)
      - the endReplication() method is called when the replication has ended
      - the simulator runs until the runUntil time, which is also set by the start() method.
      Specified by:
      run in interface Runnable
      Overrides:
      run in class DevDessSimulator<T extends Number & Comparable<T>>