Re: SVG animateMotion specification clarification request

Hi Shane.

Coming back to this topic…

Shane Stephens:
> It's worth noting that WebKit had a different (but also incorrect)
> implementation - while ASV and Opera do:
> RT * (MP * MR) * AS

I agree with Olaf that it doesn’t make sense to separate RT and AS here.
So IMO this option should be ruled out.

> Until recently WebKit was doing:
> (MP * MR) * RT * AS
> 
> In accordance with the current version of the specification, WebKit
> trunk now does:
> RT * AS * (MR * MR)

I think the question should just be which of these two options we should
settle on.

And I think we could make arguments about usability that end up with
either option, depending on the particular effect you want to achieve.
For example, using an animateMotion to add a wobbling to an object
that has a scale transform on it, you might prefer WebKit’s current
behaviour, where the scale won’t affect the motion.  Or you might
have similar to Ken’s example, where the motion animation is the
“primary” one, and an additional rotation transform animation is
used to make the object bob left and right; in this case, you might
prefer WebKit’s old behaviour, so that the bobbing isn’t affected by
the translation from the motion animation.

You can work around the ordering if it is a problem for your use by
adding an extra group, and this is the same solution regardless of
whether we choose motion animation before or after element transform.

Erik made the argument on public-svg-wg that at least one SVG animation
authoring tool likely (based on some content) assumes that the element’s
transform is post-multiplied on to the motion transform.  I don’t see a
particularly strong argument one way or the other in this thread.  I’m
inclined then to go with this behaviour, i.e. (MP * MR) * RT * AS.

Any thoughts on going this way?

-- 
Cameron McCormack ≝ http://mcc.id.au/

Received on Monday, 28 March 2011 01:12:56 UTC