animateTransform, underlying value and additive="sum"

Hello WG and all!

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].

[1] http://www.w3.org/TR/SVGMobile12/animate.html#AnimateTransformElement
[2]  
http://www.w3.org/TR/2005/REC-SMIL2-20051213/animation.html#animationNS-ToAnimation
[3] http://lists.w3.org/Archives/Public/www-svg/2006May/0132
[4] http://lists.w3.org/Archives/Public/www-svg/2006Jul/0020

-- 
David Vest <davve@opera.com>

Received on Thursday, 8 February 2007 16:40:59 UTC