# frozen value for discrete animation

From: Dr. Olaf Hoffmann <Dr.O.Hoffmann@gmx.de>
Date: Sun, 18 Mar 2007 13:30:07 +0100

Message-Id: <200703181330.08154.Dr.O.Hoffmann@gmx.de>
```
Hello,

currently a question came up, wether the
SMIL time interval model is applicable
for subintervals of discrete animations too.

To discuss this with examples, we can take:

1)

calcMode="discrete"
values="1;2;3"
keyTimes="0;0.4;0.8"
begin="0s"
dur="10s"
end="4s"
fill="freeze"

As far as I understand the time interval
model, the frozen value can be determined
using subintervals.

created interval by begin, dur and end:

[0s;4s)

subintervals from begin, dur and keyTimes:
[0s;4s)
[4s;8s)
[8s;10s)

Because 4s is excluded by the time interval
model both in the first subinterval and in the
'active duration' interval, we only have to look
for the first subinterval to get the frozen value,
in this case this is 1, not 2.
Is this correct?

2)

calcMode="discrete"
values="1;2;3"
keyTimes="0;0.5;1"
begin="0s"
dur="10s"
fill="freeze"

created interval by begin and dur:

[0; 10s)

subintervals from begin, dur and keyTimes:
[0s;5s)
[5s;10s)
[10s;10s)

The last interval is an empty or bad interval.
Normally these intervals are excluded in SMIL,
but for 'Freezing animations' (SMIL 2.1, 3.3.5) it is noted:

'If AD is an even multiple of d, i.e. AD = d*i for some positive
integer i , and the animation is non-cumulative, f_f(t) = f(d).'

and

'Note that f(d) is a shorthand for the "last value defined for the
animation function" (e.g., the "to" value or the last value in the
"values" list).'

This is applicable in this example and creates an exception,
therefore the frozen value is 3.
Is this correct?

3) Similar discrete problems can happen with
path fragments and animateMotion too.
Is the time interval model applicable here too?
(seems to be only applicable to the SMIL Animation
Recommendation 04-September-2001 or in SVG)

<animateMotion
path="M100 0L500 0M900 0 L500 0"
dur="10s"
end="5s"
fill="freeze" />

Using the time interval model the frozen value
will be 500,0 and not 900,0.
Is this correct?

If my interpretation is incorrect, it would be
nice to get a quotation or a reference to the
related section in the specification.

This may have influence on bug fixing in viewers too,
therefore it would be very nice to get this time interval