- From: Cyril Concolato <cyril.concolato@enst.fr>
- Date: Tue, 14 Feb 2006 14:48:59 +0100
- To: www-svg@w3.org
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