Package 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.ObjectAn abstract base class for managing animation in a document.- Version:
- $Id: AnimationEngine.java 1804130 2017-08-04 14:41:11Z ssteiner $
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected static classAnimationEngine.AnimationInfoClass to hold target information of an animation.protected classAnimationEngine.ListenerListener class for changes to base values on a target element.protected static classAnimationEngine.SandwichClass to hold an animation sandwich for a particular attribute.protected static classAnimationEngine.TargetInfoClass to hold XML and CSS animations for a target element.
-
Field Summary
Fields Modifier and Type Field Description static shortANIM_TYPE_CSSstatic shortANIM_TYPE_OTHERstatic shortANIM_TYPE_XMLprotected java.util.HashMapanimationsMap of AbstractAnimations to AnimationInfo objects.protected org.w3c.dom.DocumentdocumentThe document this AnimationEngine is managing animation for.protected static java.util.Map.Entry[]MAP_ENTRY_ARRAYprotected longpauseTimeThe time at which the document was paused, or 0 if the document is not paused.protected AnimationEngine.ListenertargetListenerThe listener object for animation target base value changes.protected java.util.HashMaptargetsMap of AnimationTargets to TargetInfo objects.protected TimedDocumentRoottimedDocumentRootThe root time container for the document.
-
Constructor Summary
Constructors Constructor Description AnimationEngine(org.w3c.dom.Document doc)Creates a new AnimationEngine for the given document.
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidaddAnimation(AnimationTarget target, short type, java.lang.String ns, java.lang.String an, AbstractAnimation anim)Adds an animation to the document.voidaddTimegraphListener(TimegraphListener l)Adds aTimegraphListenerto the document.protected abstract TimedDocumentRootcreateDocumentRoot()Creates a new returns a new TimedDocumentRoot object for the document.voiddispose()Disposes this animation engine.protected AnimationEngine.AnimationInfogetAnimationInfo(AbstractAnimation anim)Returns the AnimationInfo for the given AbstractAnimation.floatgetCurrentTime()Returns the current document time.protected AnimationEngine.SandwichgetSandwich(AnimationTarget target, short type, java.lang.String ns, java.lang.String an)Returns the Sandwich for the given animation type/attribute.protected AnimationEngine.TargetInfogetTargetInfo(AnimationTarget target)Returns the TargetInfo for the given AnimationTarget.booleanisPaused()Returns whether animations are currently paused.protected voidmoveToBottom(AbstractAnimation anim)Moves the given animation to the bottom of the sandwich.protected voidmoveToTop(AbstractAnimation anim)Moves the given animation to the top of the sandwich.voidpause()Pauses the animations.protected voidpushDown(AbstractAnimation anim)Moves the animation down the sandwich such that it is in the right position according to begin time and document order.voidremoveAnimation(AbstractAnimation anim)Removes an animation from the document.voidremoveFill(AbstractAnimation anim)Invoked to indicate that this timed element has had its fill removed.voidremoveTimegraphListener(TimegraphListener l)Removes aTimegraphListenerfrom the document.voidsampledAt(AbstractAnimation anim, float simpleTime, float simpleDur, int repeatIteration)Invoked to indicate that this timed element has been sampled at the given time.voidsampledLastValue(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.floatsetCurrentTime(float t)Sets the current document time.protected floattick(float time, boolean hyperlinking)Updates the animations in the document to the given document time.voidtoActive(AbstractAnimation anim, float begin)Invoked to indicate an animation became active at the specified time.voidtoInactive(AbstractAnimation anim, boolean isFrozen)Invoked to indicate that this timed element became inactive.voidunpause()Unpauses the animations.
-
-
-
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
-
-
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 animationtype- the type of animation (must be one of theANIM_TYPE_*constants defined in this classns- the namespace URI of the attribute being animated, iftype ==ANIM_TYPE_XMLan- the attribute name iftype ==ANIM_TYPE_XML, the property name iftype ==ANIM_TYPE_CSS, and the animation type otherwiseanim- 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 athyperlinking- 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 animationbegin- 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 animationisFrozen- 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 aTimegraphListenerto the document.
-
removeTimegraphListener
public void removeTimegraphListener(TimegraphListener l)
Removes aTimegraphListenerfrom 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 animationsimpleTime- the sample time in local simple timesimpleDur- the simple duration of the elementrepeatIteration- 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.
-
-