From ac3c1c63e47cf4a5a603de679f2dbc7869778901 Mon Sep 17 00:00:00 2001
From: Steve Block Calculating the current iteration
floor(iteration start + iteration count).
+ ceil(iteration start + iteration count) -
+ 1.
Local time and inherited time
If the inherited time is null then the local time
is also null.
+ For a timed item, the inherited overflow boundary at + a given moment is based on the first matching condition from the + following: +
+null.
+
+ The parent overflow boundary of a timed item is
+ the timed item's inherited overflow boundary minus its
+ start time.
+ If the inherited overflow boundary is null then
+ the parent overflow boundary is also null.
+
+ Conversely, it is possible for a timed item to be in + play without being in the active phase. + For example, a parent timing group that is in + play may have a timing function which causes it to + be overflowing. + The child timed item of such a parent timing + group may be in in play even if its local time + falls outside its active interval, causing it to not be + in the active phase. +
Transitions to and from the in play state trigger timing events as defined in Timed item phases and states duration.
- A timed item is in play if all + A timed item is in play if any of the following conditions are met:
-A timed item is current if it any of the following - conditions is true: + conditions are true:
null.
+
+ A timed item is overflowing if its parent overflow
+ boundary is not null and falls inside its active
+ interval.
+
null) inside the
active interval or when a fill is applied.
- - Currently timing functions that generate results outside the - range [0, 1] will behave unexpectedly when applied to animation - groups, as children will increase iterations or enter into fill mode - rather than continuing to extrapolate along their defined behavior - (which is what they would do if the timing function applied to them - directly). -
-- To fix this it is possible we will wish to introduce 'overflow' fill - modes that respond to time values larger than or smaller than the - active time range by extrapolating rather than filling. -
-- See section - 15 (Overflowing fill) of minuted discussion from Tokyo 2013 F2F. -
-local time - start delay.
+ scaled active time - start
- offset is equal to the repeated duration,
- and iteration count is not zero,
- and (iteration count + iteration start)
- % 1 is zero,
- return the iteration duration.
+ If the current iteration is zero, return scaled active
+ time.
+ + This clarification is needed since the iteration duration + may be infinity and the result of infinity multiplied by zero is + undefined according to IEEE 754-2008. +
scaled active time
- % iteration duration.
+ Otherwise, return scaled active time - current
+ iteration × iteration duration.
iteration start
- + iteration count - 1.
- floor(scaled active time /
- iteration duration).
+ Return the result of evaluating floor(scaled active
+ time / iteration duration), clamped to the range
+ [0, ceil(iteration start + iteration count) -
+ 1].
If the iteration duration is infinite, the
result of floor(scaled active time /
@@ -3096,6 +3125,21 @@ Calculating the transformed time
+ The overflow boundary is calculated from the + transformed time using the following steps: +
+null, return
+ null.
+ null.
+