## org.apache.batik.anim
Class AnimationEngine

    java.lang.Object
      org.apache.batik.anim.AnimationEngine

Direct Known Subclasses:
  SVGAnimationEngine

    public abstract class AnimationEngine

extends java.lang.Object

An abstract base class for managing animation in a document.

Nested Class Summary
`protected static class` `AnimationEngine.AnimationInfo` Class to hold target information of an animation.
`protected class` `AnimationEngine.Listener` Listener class for changes to base values on a target element.
`protected static class` `AnimationEngine.Sandwich` Class to hold an animation sandwich for a particular attribute.
`protected static class` `AnimationEngine.TargetInfo` Class to hold XML and CSS animations for a target element.

Field Summary
`static short` `ANIM_TYPE_CSS`
`static short` `ANIM_TYPE_OTHER`
`static short` `ANIM_TYPE_XML`
`protected java.util.HashMap` `animations` Map of AbstractAnimations to AnimationInfo objects.
`protected org.w3c.dom.Document` `document` The document this AnimationEngine is managing animation for.
`protected static java.util.Map.Entry[]` `MAP_ENTRY_ARRAY`
`protected long` `pauseTime` The time at which the document was paused, or 0 if the document is not paused.
`protected AnimationEngine.Listener` `targetListener` The listener object for animation target base value changes.
`protected java.util.HashMap` `targets` Map of AnimationTargets to TargetInfo objects.
`protected TimedDocumentRoot` `timedDocumentRoot` The root time container for the document.

Constructor Summary
`AnimationEngine(org.w3c.dom.Document doc)` Creates a new AnimationEngine for the given document.

Method Summary
`void` `addAnimation(AnimationTarget target, short type, java.lang.String ns, java.lang.String an, AbstractAnimation anim)` Adds an animation to the document.
`void` `addTimegraphListener(TimegraphListener l)` Adds a `TimegraphListener` to the document.
`protected abstract TimedDocumentRoot` `createDocumentRoot()` Creates a new returns a new TimedDocumentRoot object for the document.
`void` `dispose()` Disposes this animation engine.
`protected AnimationEngine.AnimationInfo` `getAnimationInfo(AbstractAnimation anim)` Returns the AnimationInfo for the given AbstractAnimation.
`float` `getCurrentTime()` Returns the current document time.
`protected AnimationEngine.Sandwich` `getSandwich(AnimationTarget target, short type, java.lang.String ns, java.lang.String an)` Returns the Sandwich for the given animation type/attribute.
`protected AnimationEngine.TargetInfo` `getTargetInfo(AnimationTarget target)` Returns the TargetInfo for the given AnimationTarget.
`boolean` `isPaused()` Returns whether animations are currently paused.
`protected void` `moveToBottom(AbstractAnimation anim)` Moves the given animation to the bottom of the sandwich.
`protected void` `moveToTop(AbstractAnimation anim)` Moves the given animation to the top of the sandwich.
`void` `pause()` Pauses the animations.
`protected void` `pushDown(AbstractAnimation anim)` Moves the animation down the sandwich such that it is in the right position according to begin time and document order.
`void` `removeAnimation(AbstractAnimation anim)` Removes an animation from the document.
`void` `removeFill(AbstractAnimation anim)` Invoked to indicate that this timed element has had its fill removed.
`void` `removeTimegraphListener(TimegraphListener l)` Removes a `TimegraphListener` from the document.
`void` `sampledAt(AbstractAnimation anim, float simpleTime, float simpleDur, int repeatIteration)` Invoked to indicate that this timed element has been sampled at the given time.
`void` `sampledLastValue(AbstractAnimation anim, int repeatIteration)` Invoked to indicate that this timed element has been sampled at the end of its active time, at an integer multiple of the simple duration.
`float` `setCurrentTime(float t)` Sets the current document time.
`protected float` `tick(float time, boolean hyperlinking)` Updates the animations in the document to the given document time.
`void` `toActive(AbstractAnimation anim, float begin)` Invoked to indicate an animation became active at the specified time.
`void` `toInactive(AbstractAnimation anim, boolean isFrozen)` Invoked to indicate that this timed element became inactive.
`void` `unpause()` Unpauses the animations.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### ANIM_TYPE_XML

    public static final short ANIM_TYPE_XML

See Also:
  Constant Field Values

### ANIM_TYPE_CSS

    public static final short ANIM_TYPE_CSS

See Also:
  Constant Field Values

### ANIM_TYPE_OTHER

    public static final short ANIM_TYPE_OTHER

See Also:
  Constant Field Values

### document

    protected org.w3c.dom.Document document

  The document this AnimationEngine is managing animation for.

### timedDocumentRoot

    protected TimedDocumentRoot timedDocumentRoot

  The root time container for the document.

### pauseTime

    protected long pauseTime

  The time at which the document was paused, or 0 if the document is not paused.

### targets

    protected java.util.HashMap targets

  Map of AnimationTargets to TargetInfo objects.

### animations

    protected java.util.HashMap animations

  Map of AbstractAnimations to AnimationInfo objects.

### targetListener

    protected AnimationEngine.Listener targetListener

  The listener object for animation target base value changes.

### MAP_ENTRY_ARRAY

    protected static final java.util.Map.Entry[] MAP_ENTRY_ARRAY

Constructor Detail

### AnimationEngine

    public AnimationEngine(org.w3c.dom.Document doc)

  Creates a new AnimationEngine for the given document.

Method Detail

### dispose

    public void dispose()

  Disposes this animation engine.

### pause

    public void pause()

  Pauses the animations.

### unpause

    public void unpause()

  Unpauses the animations.

### isPaused

    public boolean isPaused()

  Returns whether animations are currently paused.

### getCurrentTime

    public float getCurrentTime()

  Returns the current document time.

### setCurrentTime

    public float setCurrentTime(float t)

  Sets the current document time.

### addAnimation

    public void addAnimation(AnimationTarget target,
                             short type,
                             java.lang.String ns,
                             java.lang.String an,
                             AbstractAnimation anim)

  Adds an animation to the document.

  Parameters:
    `target` - the target element of the animation
    `type` - the type of animation (must be one of the `ANIM_TYPE_*` constants defined in this class
    `ns` - the namespace URI of the attribute being animated, if `type ==` `ANIM_TYPE_XML`
    `an` - the attribute name if `type ==` `ANIM_TYPE_XML`, the property name if `type ==` `ANIM_TYPE_CSS`, and the animation type otherwise
    `anim` - the animation

### removeAnimation

    public void removeAnimation(AbstractAnimation anim)

  Removes an animation from the document.

### getSandwich

    protected AnimationEngine.Sandwich getSandwich(AnimationTarget target,
                                                   short type,
                                                   java.lang.String ns,
                                                   java.lang.String an)

  Returns the Sandwich for the given animation type/attribute.

### getTargetInfo

    protected AnimationEngine.TargetInfo getTargetInfo(AnimationTarget target)

  Returns the TargetInfo for the given AnimationTarget.

### getAnimationInfo

    protected AnimationEngine.AnimationInfo getAnimationInfo(AbstractAnimation anim)

  Returns the AnimationInfo for the given AbstractAnimation.

### tick

    protected float tick(float time,
                         boolean hyperlinking)

  Updates the animations in the document to the given document time.

  Parameters:
    `time` - the document time to sample at
    `hyperlinking` - whether the document should be seeked to the given time, as with hyperlinking

### toActive

    public void toActive(AbstractAnimation anim,
                         float begin)

  Invoked to indicate an animation became active at the specified time.

  Parameters:
    `anim` - the animation
    `begin` - the time the element became active, in document simple time

### pushDown

    protected void pushDown(AbstractAnimation anim)

  Moves the animation down the sandwich such that it is in the right position according to begin time and document order.

### toInactive

    public void toInactive(AbstractAnimation anim,
                           boolean isFrozen)

  Invoked to indicate that this timed element became inactive.

  Parameters:
    `anim` - the animation
    `isFrozen` - whether the element is frozen or not

### removeFill

    public void removeFill(AbstractAnimation anim)

  Invoked to indicate that this timed element has had its fill removed.

### moveToTop

    protected void moveToTop(AbstractAnimation anim)

  Moves the given animation to the top of the sandwich.

### moveToBottom

    protected void moveToBottom(AbstractAnimation anim)

  Moves the given animation to the bottom of the sandwich.

### addTimegraphListener

    public void addTimegraphListener(TimegraphListener l)

  Adds a `TimegraphListener` to the document.

### removeTimegraphListener

    public void removeTimegraphListener(TimegraphListener l)

  Removes a `TimegraphListener` from the document.

### sampledAt

    public void sampledAt(AbstractAnimation anim,
                          float simpleTime,
                          float simpleDur,
                          int repeatIteration)

  Invoked to indicate that this timed element has been sampled at the given time.

  Parameters:
    `anim` - the animation
    `simpleTime` - the sample time in local simple time
    `simpleDur` - the simple duration of the element
    `repeatIteration` - the repeat iteration during which the element was sampled

### sampledLastValue

    public void sampledLastValue(AbstractAnimation anim,
                                 int repeatIteration)

  Invoked to indicate that this timed element has been sampled at the end of its active time, at an integer multiple of the simple duration. This is the "last" value that will be used for filling, which cannot be sampled normally.

### createDocumentRoot

    protected abstract TimedDocumentRoot createDocumentRoot()

  Creates a new returns a new TimedDocumentRoot object for the document.

Copyright © 2008 Apache Software Foundation. All Rights Reserved.