Re: animateTransform, underlying value and additive="sum"

Hi David.

David Vest:
> My issue is related to animateTransform and the directive in SVG 1.2 Tiny  
> 1.2 that says:
> 
> "If 'from' or 'to' attributes are not specified, the underlying value (see  
> SMIL discussion of animation function values) is the corresponding  
> identity transformation value." [1]
> 
> this, in combination with "To animations" [2] in SMIL that says:
> 
> "To animation defines its own kind of additive semantics, so the additive  
> attribute is ignored."
> 
> These two statements makes it impossible for animateTransforms without a  
> 'from'-value to be additive.
> 
> I wonder if this is the intended behaviour. This is an example that should  
> show no red, if both these statements are fulfilled:
> 
> <?xml version="1.0" encoding="iso-8859-1" ?>
> <svg width="500px" height="500px" viewBox="-250 -250 500 500"
>      xmlns="http://www.w3.org/2000/svg" version="1.1" baseProfile="tiny"
>      xmlns:xlink="http://www.w3.org/1999/xlink">
>   <title>animateTransform, 'to'-animations and additiveness</title>
>   <circle id="c5" cx="0" cy="0" r="40" fill="grey"/>
>   <circle id="c5" cx="-100" cy="0" r="40" fill="grey"/>
>   <circle id="c5" cx="100" cy="0" r="40" fill="grey"/>
>   <circle id="c2" cx="0" cy="0" r="30" fill="red"  
> transform="translate(-100,0)">
>     <animateTransform attributeName="transform" attributeType="XML"  
> type="translate"
>         to="100,0" dur="3s" begin="0s" fill="freeze" 
>         additive="sum"/>
>   </circle>
>   <circle id="c2" cx="0" cy="0" r="30" fill="green"  
> transform="translate(-100,0)">
>     <animateTransform attributeName="transform" attributeType="XML"  
> type="translate"
>         to="100,0" dur="3s" begin="0s" fill="freeze" />
>   </circle>
> </svg>
> 
> I see three different options here:
> 
> 1. Accept the current situation. It makes 'to'-animations with  
> animateTransform silly, since they can't be additive and therefore not  
> very useful.
> 
> 2. Add an override statement to SVG that respects additive="sum" for  
> animateTransforms without 'from', since the underlying value (implicit  
> 'from'-value) is the identity matrix.
> 
> 3. Change the wording how the underlying value is extracted. This is a bit  
> complex since the 'real' underlying value is a list of transforms, but  
> perhaps one could allow lists of length one as a underlying value (use the  
> one transform in the list).
> 
> (4. I have gotten this all wrong and someone will correct me and send me  
> along my merry way...)
> 
> By searching the list (www-svg) I find that Dr. Hoffman has brought up  
> this before [3] (I think, his mail touches upon other points too). Also,  
> Cameron McCormack has raised questions about how to-animations should work  
> in animateTransform[4].

We discussed this in the group and resolved that we would leave the
behaviour of to- transform animations being unable to be added.  To do
what you want, you should use a by-animation.

We also resolved that the paragraph [1] above will be amended so that
from-by animations are not unnecessarily precluded from being made
additive (which the current wording would require).

Thanks,

Cameron

-- 
Cameron McCormack, http://mcc.id.au/
 xmpp:heycam@jabber.org  ▪  ICQ 26955922  ▪  MSN cam@mcc.id.au

Received on Friday, 9 March 2007 05:38:05 UTC