Interface IAnimation


public interface IAnimation
An animation that can be added to AnimationManager.

An animation is modeled as a function that takes a value between 0 and 1 as input.

  • 0: the start of the animation
  • 1: the end of the animation

AnimationManager generates this value using a duration that is assigned to the animation and the elapsed time at the moment the animation is updated.

  • Method Summary

    Modifier and Type
    Method
    Description
    Returns the duration of this animation in milliseconds.
    boolean
    Returns whether this animation is a looping animation.
    void
    This method is called when the animation is started.
    void
    This method is called when the animation is stopped.
    boolean
    onUpdate(double fraction)
    This method is called to update the animation.
  • Method Details

    • onStart

      void onStart()
      This method is called when the animation is started.

      No onUpdate call will be performed before this method is called. This method is not supposed to call IAnimation#onUpdate itself.

    • onUpdate

      boolean onUpdate(double fraction) throws IllegalArgumentException
      This method is called to update the animation.

      This method will typically perform an action, e.g. update the camera location.

      Parameters:
      fraction - The position where you are located in the animation. This position varies from 0 to 1 (0 and 1 are included).
      Returns:
      if the action needs to continue. Returning false stops the animation and triggers a call to the onStop method.
      Throws:
      IllegalArgumentException - when the fraction value is invalid.
    • onStop

      void onStop()
      This method is called when the animation is stopped.

      No IAnimation#onUpdate call will be performed after this method is called. This method is not supposed to call IAnimation#onUpdate itself.

      Note that this method may be called before the animation has finished. This can for example happen when an animation is canceled.

    • getDuration

      @NotNull Duration getDuration()
      Returns the duration of this animation in milliseconds.

      This information is used by AnimationManager. In practice, this means that the IAnimation#onUpdate method is called with a value of 1.0 after this duration has elapsed.

      Returns:
      the duration of this animation in milliseconds.
    • isLooping

      boolean isLooping()
      Returns whether this animation is a looping animation.

      This information is used by AnimationManager. If false, the animation is automatically stopped and removed once the duration has elapsed. Otherwise, the animation will continue as long as IAnimation#onUpdate returns true. In case of a looping animation, the fraction that is passed to the IAnimation#onUpdate restarts at 0 once the animation has completed and progresses again towards 1.

      Returns:
      if this animation is a looping animation.