java.lang.Object
io.sf.carte.echosvg.anim.AnimationEngine
- Direct Known Subclasses:
SVGAnimationEngine
An abstract base class for managing animation in a document.
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static class
Class to hold target information of an animation.protected class
Listener class for changes to base values on a target element.protected static class
Class to hold an animation sandwich for a particular attribute.protected static class
Class to hold XML and CSS animations for a target element. -
Field Summary
Modifier and TypeFieldDescriptionstatic final short
static final short
static final short
Map of AbstractAnimations to AnimationInfo objects.protected Document
The document this AnimationEngine is managing animation for.protected static final Map.Entry<AnimationTarget,
AnimationEngine.TargetInfo>[] protected long
The time at which the document was paused, or 0 if the document is not paused.protected AnimationEngine.Listener
The listener object for animation target base value changes.protected HashMap
<AnimationTarget, AnimationEngine.TargetInfo> Map of AnimationTargets to TargetInfo objects.protected TimedDocumentRoot
The root time container for the document. -
Constructor Summary
ConstructorDescriptionAnimationEngine
(Document doc) Creates a new AnimationEngine for the given document. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addAnimation
(AnimationTarget target, short type, String ns, String an, AbstractAnimation anim) Adds an animation to the document.void
Adds aTimegraphListener
to the document.protected abstract TimedDocumentRoot
Creates a new returns a new TimedDocumentRoot object for the document.void
dispose()
Disposes this animation engine.protected AnimationEngine.AnimationInfo
Returns the AnimationInfo for the given AbstractAnimation.float
Returns the current document time.protected AnimationEngine.Sandwich
getSandwich
(AnimationTarget target, short type, String ns, 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
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
Removes an animation from the document.void
removeFill
(AbstractAnimation anim) Invoked to indicate that this timed element has had its fill removed.void
Removes aTimegraphListener
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.
-
Field Details
-
ANIM_TYPE_XML
public static final short ANIM_TYPE_XML- See Also:
-
ANIM_TYPE_CSS
public static final short ANIM_TYPE_CSS- See Also:
-
ANIM_TYPE_OTHER
public static final short ANIM_TYPE_OTHER- See Also:
-
document
The document this AnimationEngine is managing animation for. -
timedDocumentRoot
The root time container for the document. -
pauseTime
protected long pauseTimeThe time at which the document was paused, or 0 if the document is not paused. -
targets
Map of AnimationTargets to TargetInfo objects. -
animations
Map of AbstractAnimations to AnimationInfo objects. -
targetListener
The listener object for animation target base value changes. -
MAP_ENTRY_ARRAY
-
-
Constructor Details
-
AnimationEngine
Creates a new AnimationEngine for the given document.
-
-
Method Details
-
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, String ns, 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_XML
an
- the attribute name iftype ==
ANIM_TYPE_XML
, the property name iftype ==
ANIM_TYPE_CSS
, and the animation type otherwiseanim
- the animation
-
removeAnimation
Removes an animation from the document. -
getSandwich
protected AnimationEngine.Sandwich getSandwich(AnimationTarget target, short type, String ns, String an) Returns the Sandwich for the given animation type/attribute. -
getTargetInfo
Returns the TargetInfo for the given AnimationTarget. -
getAnimationInfo
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
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
Moves the animation down the sandwich such that it is in the right position according to begin time and document order. -
toInactive
Invoked to indicate that this timed element became inactive.- Parameters:
anim
- the animationisFrozen
- whether the element is frozen or not
-
removeFill
Invoked to indicate that this timed element has had its fill removed. -
moveToTop
Moves the given animation to the top of the sandwich. -
moveToBottom
Moves the given animation to the bottom of the sandwich. -
addTimegraphListener
Adds aTimegraphListener
to the document. -
removeTimegraphListener
Removes aTimegraphListener
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 animationsimpleTime
- the sample time in local simple timesimpleDur
- the simple duration of the elementrepeatIteration
- the repeat iteration during which the element was sampled
-
sampledLastValue
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
Creates a new returns a new TimedDocumentRoot object for the document.
-