<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>15960</bug_id>
          
          <creation_ts>2012-02-12 00:27:25 +0000</creation_ts>
          <short_desc>Use euler angles or quaternions to decompose matrices</short_desc>
          <delta_ts>2012-05-24 20:30:30 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>CSS</product>
          <component>Transforms</component>
          <version>unspecified</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dirk Schulze">dschulze</reporter>
          <assigned_to name="Dirk Schulze">dschulze</assigned_to>
          <cc>ayg</cc>
    
    <cc>cmarrin</cc>
    
    <cc>dino</cc>
    
    <cc>dschulze</cc>
    
    <cc>eoconnor</cc>
    
    <cc>smfr</cc>
          
          <qa_contact>public-css-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>63991</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-02-12 00:27:25 +0000</bug_when>
    <thetext>With copying the code from FX Transforms, I might have open a concern from Boris. I will check this:

&quot;In section 7.4 of the current 2d transforms editor&apos;s draft (no public 
version of this, so no link, sorry), there is a bunch of text that seems 
to be defining what to do in terms of 3d transforms.  Or so I assume. 
It doesn&apos;t actually say what the notation it&apos;s using means.

In any case, I suspect that using the first Euler angle to rotate in all 
three directions is just wrong.

-Boris&quot;

http://lists.w3.org/Archives/Public/www-style/2011Apr/0467.html

Note: The section number is not correct anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64110</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-02-14 18:56:00 +0000</bug_when>
    <thetext>The pseudo code in the spec uses euler angles for getting the rotation. Implementations seem to use quaternions to work around singularities with euler. Should we follow implementations? Should animations and transitions get updated as well?

See discussions:

http://lists.w3.org/Archives/Public/www-style/2011Aug/0652.html 
http://lists.w3.org/Archives/Public/www-style/2011Aug/0653.html
http://lists.w3.org/Archives/Public/www-style/2011Aug/0665.html

and

http://lists.w3.org/Archives/Public/www-style/2012Feb/0575.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64128</commentid>
    <comment_count>2</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-02-15 04:06:35 +0000</bug_when>
    <thetext>All people I spoke with agree that we should use quaternions on the pseudo code. At least the code of WebKit and Mozilla seem to follow: http://lists.w3.org/Archives/Public/www-style/2011Aug/0652.html

So I will try to add this to the spec. Simon: looks like you were right with [1] ;)


[1] https://twitter.com/smfr/status/169494444968648704</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>64129</commentid>
    <comment_count>3</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-02-15 04:16:32 +0000</bug_when>
    <thetext>A link to the implementations of WebKit and Mozilla:

http://trac.webkit.org/browser/trunk/Source/WebCore/platform/graphics/transforms/TransformationMatrix.cpp#L294
http://mxr.mozilla.org/mozilla-central/source/layout/style/nsStyleAnimation.cpp#1156</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>66995</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-04-24 22:41:37 +0000</bug_when>
    <thetext>I am looking at this at the moment.

I suggest that we mention that the decomposing can be done by using quaternions and give a short description of why using quaternions (just one sentence). After that it just references some books or sites that describe quaternions.

I&apos;d remove the code itself and just link to the pseudo code. We maintain this pseudo code and put it into the spec directory.  The pseudo code will be using the code from Mozilla and Webkit (they don&apos;t differ a lot anyway).

Any concerns?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>67515</commentid>
    <comment_count>5</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-05-09 12:41:15 +0000</bug_when>
    <thetext>*** Bug 14608 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>68085</commentid>
    <comment_count>6</comment_count>
    <who name="Dirk Schulze">dschulze</who>
    <bug_when>2012-05-24 20:30:30 +0000</bug_when>
    <thetext>The interpolation code uses quaternions now.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>