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
Nested ClassesModifier and TypeClassDescriptionprotected static classClass to hold target information of an animation.protected classListener class for changes to base values on a target element.protected static classClass to hold an animation sandwich for a particular attribute.protected static classClass to hold XML and CSS animations for a target element. -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final shortstatic final shortstatic final shortMap of AbstractAnimations to AnimationInfo objects.protected DocumentThe document this AnimationEngine is managing animation for.protected static final Map.Entry<AnimationTarget,AnimationEngine.TargetInfo>[] protected longThe time at which the document was paused, or 0 if the document is not paused.protected AnimationEngine.ListenerThe listener object for animation target base value changes.protected HashMap<AnimationTarget, AnimationEngine.TargetInfo> Map of AnimationTargets to TargetInfo objects.protected TimedDocumentRootThe root time container for the document. -
Constructor Summary
ConstructorsConstructorDescriptionAnimationEngine(Document doc) Creates a new AnimationEngine for the given document. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAnimation(AnimationTarget target, short type, String ns, String an, AbstractAnimation anim) Adds an animation to the document.voidAdds aTimegraphListenerto the document.protected abstract TimedDocumentRootCreates a new returns a new TimedDocumentRoot object for the document.voiddispose()Disposes this animation engine.protected AnimationEngine.AnimationInfoReturns the AnimationInfo for the given AbstractAnimation.floatReturns the current document time.protected AnimationEngine.SandwichgetSandwich(AnimationTarget target, short type, String ns, 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 voidMoves 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.voidRemoves an animation from the document.voidremoveFill(AbstractAnimation anim) Invoked to indicate that this timed element has had its fill removed.voidRemoves 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 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_XMLan- 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 aTimegraphListenerto the document. -
removeTimegraphListener
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
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.
-