Re: [css3-transforms] interpolation of transform lists

On Jul 26, 2012, at 4:41 PM, Dirk Schulze wrote:

> 
> On Jul 26, 2012, at 4:23 PM, Dean Jackson wrote:
> 
>> 
>> On 27/07/2012, at 9:12 AM, Dirk Schulze <dschulze@adobe.com> wrote:
>> 
>>>> This is what WebKit currently implements. I do not see any reason to make it more restrictive than that. If the two lists match item for item, then interpolate between each item separately. This includes perspective().
>>> Ok, but for the example where both list have: 'perspective() matrix3d()' it means that we decompose matrices individually and interpolate them individually, which leads to less performance.
>> 
>> Yeah. But I don't think it's a big deal.
> Ok. Since WebKit and Gecko people agree on that, I'll edit the spec to interpolate these functions as well, but with transforming it to a matrix and decompose it before the actual interpolation process.
I changed the text. This is the change log entry:

    Transform lists get no longer premultiplied if some functions in the list
    are of type 'matrix', 'rotate3d', 'rotateX', 'rotateY', 'rotateZ', 'matrix3d'
    and ‘perspective’. 
    Instead 'rotateX', 'rotateY' and 'rotateZ' get interpolated numericaly and
    'matrix', 'rotate3d' and ‘perspective’ get converted to matrix4x4 and
    interpolated as matrices.

Please send comments and suggestions to the changed text.

Greetings,
Dirk


> 
>> 
>>>> I think the only thing we need to decide now is whether or not we should allow translateX() to match against translate(), and so on. Currently WebKit does not support this.
>>> The current spec defines which values can be animated together and how to do it. translateX() is a derivative of the primitive  translate(). Therefore both can be animated together.
>> 
>> Right, sorry. I should have worded that along the lines of WebKit's implementation, not what the spec currently says.
>> 
>>>> Maybe rotate3d() <-> rotateX/Y/Z is controversial. I don't know.
>>> We have a request from authors to do that. IMO it makes some sense if both are rotating around the same axis (like rotate3d(1,0,0,45deg) and rotateX(45deg) but not rotate3d(0,0,1) and rotateX(45deg)). But I don't think that it is implemented somewhere.
>> 
>> I don't think we should add special cases like that. It's either in or out.
> Then it I would still like to know if rotate3d() should be transformed to a matrix before decomposing and should it force the complete list to be transformed to one matrix first, or treated like matrix3d()? I assume it should be treated the same.
> 
>> 
>> BTW  - how are we going to handle the fact that browsers have unprefixed their implementations?
> Well, that fact doesn't make adding specification easier.
> 
> 
>> 
>> Dean
>> 
> 
> Greetings,
> Dirk

Received on Friday, 27 July 2012 04:44:32 UTC