pub struct KeyFrameAnimationInstance<T: ExpressionVariantValue> { /* private fields */ }Expand description
Server-side counterpart of KeyFrameAnimation with values baked-in
Times are kept in ticks, as upstream computes with TimeSpan ticks; the
elapsed time of an evaluation before the start of the animation is
negative.
Implementations§
Source§impl<T: ExpressionVariantValue> KeyFrameAnimationInstance<T>
impl<T: ExpressionVariantValue> KeyFrameAnimationInstance<T>
Sourcepub fn new(
interpolator: &'static dyn IInterpolator<T>,
key_frames: Vec<ServerKeyFrame<T>>,
snapshot: Rc<PropertySetSnapshot>,
final_value: Option<ExpressionVariant>,
target: ServerObjectId,
delay_behavior: AnimationDelayBehavior,
delay_time: Duration,
direction: PlaybackDirection,
duration: Duration,
iteration_behavior: AnimationIterationBehavior,
iteration_count: i32,
stop_behavior: AnimationStopBehavior,
) -> Rc<KeyFrameAnimationInstance<T>>
pub fn new( interpolator: &'static dyn IInterpolator<T>, key_frames: Vec<ServerKeyFrame<T>>, snapshot: Rc<PropertySetSnapshot>, final_value: Option<ExpressionVariant>, target: ServerObjectId, delay_behavior: AnimationDelayBehavior, delay_time: Duration, direction: PlaybackDirection, duration: Duration, iteration_behavior: AnimationIterationBehavior, iteration_count: i32, stop_behavior: AnimationStopBehavior, ) -> Rc<KeyFrameAnimationInstance<T>>
Panics when there are no key frames or the duration is not positive
(InvalidOperationException upstream).
Sourcepub fn set_initial_value_expressions(
&self,
expressions: Vec<(String, Expression)>,
)
pub fn set_initial_value_expressions( &self, expressions: Vec<(String, Expression)>, )
Sets the initial value expressions of the animation (parsed by
InitialValueExpressionCollection::parse_all),
applied to the target when the instance is initialized.
Sourcepub fn set_completion(&self, completion: AnimationCompletion)
pub fn set_completion(&self, completion: AnimationCompletion)
Sets the batches the animation belongs to (see
CompositionScopedBatch).
Trait Implementations§
Source§impl<T: ExpressionVariantValue> IAnimationInstance for KeyFrameAnimationInstance<T>
impl<T: ExpressionVariantValue> IAnimationInstance for KeyFrameAnimationInstance<T>
Source§fn target_object(&self) -> ServerObjectId
fn target_object(&self) -> ServerObjectId
The object whose property is animated.
Source§fn resolve(&self, compositor: &Rc<ServerCompositor>)
fn resolve(&self, compositor: &Rc<ServerCompositor>)
Resolves the server objects the instance refers to by id, on the
compositor that drives it. Called once, on the server, before the
instance is initialized; an instance that refers to no object needs
nothing.
Source§fn evaluate(
&self,
now: Duration,
current_value: ExpressionVariant,
) -> ExpressionVariant
fn evaluate( &self, now: Duration, current_value: ExpressionVariant, ) -> ExpressionVariant
The value of the animation at
now.Source§fn initialize(
&self,
started_at: Duration,
starting_value: ExpressionVariant,
property: &'static CompositionProperty,
)
fn initialize( &self, started_at: Duration, starting_value: ExpressionVariant, property: &'static CompositionProperty, )
Attaches the instance to the property it animates.
fn activate(&self)
fn deactivate(&self)
fn invalidate(&self)
Source§fn value_on_stop(
&self,
current_value: ExpressionVariant,
) -> Option<ExpressionVariant>
fn value_on_stop( &self, current_value: ExpressionVariant, ) -> Option<ExpressionVariant>
The value the animated property is set to when the animation is
stopped by
StopAnimation (its stop behavior), given the current
value of the property; None leaves the current value.Source§fn release_completion(&self)
fn release_completion(&self)
Tells the batches the animation belongs to that it is over (it is
stopped, replaced or its target is disposed). Releasing again does
nothing; an animation that belongs to no batch does nothing.
Source§fn attach_controller(&self, controller: ServerObjectId)
fn attach_controller(&self, controller: ServerObjectId)
Puts the instance under the control of an
AnimationController, named by the id of
the controller’s property set: from now on the controller pauses,
resumes, scrubs and speeds up the animation; if the progress of the
controller was assigned, the animation moves there at its next
evaluation. An instance that cannot be controlled (an expression
animation) ignores it.Source§fn as_subchannel(&self) -> Option<&SubchannelAnimationInstance>
fn as_subchannel(&self) -> Option<&SubchannelAnimationInstance>
The instance as an animation of components of its property
(
Offset.X), if it is one: such animations of one property are
merged on the server.Source§impl<T: ExpressionVariantValue> IServerClockItem for KeyFrameAnimationInstance<T>
impl<T: ExpressionVariantValue> IServerClockItem for KeyFrameAnimationInstance<T>
Auto Trait Implementations§
impl<T> !Freeze for KeyFrameAnimationInstance<T>
impl<T> !RefUnwindSafe for KeyFrameAnimationInstance<T>
impl<T> !Send for KeyFrameAnimationInstance<T>
impl<T> !Sync for KeyFrameAnimationInstance<T>
impl<T> !UnwindSafe for KeyFrameAnimationInstance<T>
impl<T> Unpin for KeyFrameAnimationInstance<T>
impl<T> UnsafeUnpin for KeyFrameAnimationInstance<T>where
&'static dyn IInterpolator<T>: UnsafeUnpin,
Vec<ServerKeyFrame<T>>: UnsafeUnpin,
Cell<T>: UnsafeUnpin,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> ClassDefaults for Twhere
T: ?Sized,
impl<T> ClassDefaults for Twhere
T: ?Sized,
Source§fn static_constructor()
fn static_constructor()
The static constructor of a type: work done once per thread, after
the properties of the type are registered and before its first
instance exists (class handlers,
affects_render, metadata
overrides). Read more