Re: calcMode="linear" with numeric and non-numeric values

Hi Cameron,

>   <animate attributeName="opacity" dur="6s" calcMode="linear"
>            values="inherit; 0; 1"/>
> 
> 'opacity' is an attribute that does support linear interpolation, so
> according to the quoted paragraph above calcMode is not ignored, but
> obviously interpolation cannot happen between 'inherit' and '0'.  So
> what should happen?  Three possibilities I can think of:
> 
>   * Do treat it as if calcMode="discrete" were specified, because at
>     least one non-numeric value was given:
> 
>       'inherit' from 0s to 2s
>       '0'       from 2s to 4s
>       '1'       from 4s to 6s
> 
>   * Treat it the same as calcMode="linear", but don't actually do any
>     interpolation between 'inherit' and '0':
> 
>       'inherit' from 0s to 3s
>       '0'..'1'  from 3s to 6s
> 
>   * Treat it like a separate calcMode="discrete" between 'inherit' and
>     '0' and calcMode="linear" between '0' and '1', distributing the
>     segments equally:
> 
>       'inherit' from 0s to 2s
>       '0'       from 2s to 4s
>       '0'..'1'  from 4s to 6s

I think you missed one choice:
    * Treat it as calcMode="linear" but apply inheritance before computing the interpolation between the inherited value and 0. 
I think this is the correct behavior but unfortunately it is poorly specified in SMIL.

Best regards,

Cyril


> 
> I like the second choice, but if there is some text that defines what
> happens in a case like this then a pointer would be appreciated.
> 
> Thanks,
> 
> Cameron
> 
> [1]
> http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncCalcMode
> [2]
> http://www.w3.org/TR/SVG11/animate.html#AnimationAttributesAndProperties
> 

Received on Tuesday, 14 February 2006 13:49:08 UTC