Skip to content

Commit

Permalink
[geometry] Do not structured serialize -0 for m13 of a 2d matrix
Browse files Browse the repository at this point in the history
  • Loading branch information
zcorpan committed May 18, 2017
1 parent 840c3b9 commit bc125de
Showing 1 changed file with 105 additions and 34 deletions.
139 changes: 105 additions & 34 deletions geometry/Overview.bs
Expand Up @@ -1895,77 +1895,148 @@ user agents.
|serialized|, are:

<ol>
<li><p>Set |serialized|.\[[M11]] to |value|'s <a for=matrix>m11 element</a>.
<li>
<p>If |value|'s <a for=matrix>is 2D</a> is <code>true</code>:

<ol>
<li><p>Set |serialized|.\[[M11]] to |value|'s <a for=matrix>m11 element</a>.

<li><p>Set |serialized|.\[[M12]] to |value|'s <a for=matrix>m12 element</a>.

<li><p>Set |serialized|.\[[M21]] to |value|'s <a for=matrix>m21 element</a>.

<li><p>Set |serialized|.\[[M22]] to |value|'s <a for=matrix>m22 element</a>.

<li><p>Set |serialized|.\[[M41]] to |value|'s <a for=matrix>m41 element</a>.

<li><p>Set |serialized|.\[[M42]] to |value|'s <a for=matrix>m42 element</a>.

<li><p>Set |serialized|.\[[Is2D]] to <code>true</code>.
</ol>

<li><p>Set |serialized|.\[[M12]] to |value|'s <a for=matrix>m12 element</a>.
<p class=note>It is possible for a 2D {{DOMMatrix}} or {{DOMMatrixReadOnly}} to have ''-0'' for
some of the other elements, e.g., the <a for=matrix>m13 element</a>, which will not be
roundtripped by this algorithm.

<li><p>Set |serialized|.\[[M13]] to |value|'s <a for=matrix>m13 element</a>.
<li>
<p>Otherwise:

<ol>
<li><p>Set |serialized|.\[[M11]] to |value|'s <a for=matrix>m11 element</a>.

<li><p>Set |serialized|.\[[M12]] to |value|'s <a for=matrix>m12 element</a>.

<li><p>Set |serialized|.\[[M13]] to |value|'s <a for=matrix>m13 element</a>.

<li><p>Set |serialized|.\[[M14]] to |value|'s <a for=matrix>m14 element</a>.
<li><p>Set |serialized|.\[[M14]] to |value|'s <a for=matrix>m14 element</a>.

<li><p>Set |serialized|.\[[M21]] to |value|'s <a for=matrix>m21 element</a>.
<li><p>Set |serialized|.\[[M21]] to |value|'s <a for=matrix>m21 element</a>.

<li><p>Set |serialized|.\[[M22]] to |value|'s <a for=matrix>m22 element</a>.
<li><p>Set |serialized|.\[[M22]] to |value|'s <a for=matrix>m22 element</a>.

<li><p>Set |serialized|.\[[M23]] to |value|'s <a for=matrix>m23 element</a>.
<li><p>Set |serialized|.\[[M23]] to |value|'s <a for=matrix>m23 element</a>.

<li><p>Set |serialized|.\[[M24]] to |value|'s <a for=matrix>m24 element</a>.
<li><p>Set |serialized|.\[[M24]] to |value|'s <a for=matrix>m24 element</a>.

<li><p>Set |serialized|.\[[M31]] to |value|'s <a for=matrix>m31 element</a>.
<li><p>Set |serialized|.\[[M31]] to |value|'s <a for=matrix>m31 element</a>.

<li><p>Set |serialized|.\[[M32]] to |value|'s <a for=matrix>m32 element</a>.
<li><p>Set |serialized|.\[[M32]] to |value|'s <a for=matrix>m32 element</a>.

<li><p>Set |serialized|.\[[M33]] to |value|'s <a for=matrix>m33 element</a>.
<li><p>Set |serialized|.\[[M33]] to |value|'s <a for=matrix>m33 element</a>.

<li><p>Set |serialized|.\[[M34]] to |value|'s <a for=matrix>m34 element</a>.
<li><p>Set |serialized|.\[[M34]] to |value|'s <a for=matrix>m34 element</a>.

<li><p>Set |serialized|.\[[M41]] to |value|'s <a for=matrix>m41 element</a>.
<li><p>Set |serialized|.\[[M41]] to |value|'s <a for=matrix>m41 element</a>.

<li><p>Set |serialized|.\[[M42]] to |value|'s <a for=matrix>m42 element</a>.
<li><p>Set |serialized|.\[[M42]] to |value|'s <a for=matrix>m42 element</a>.

<li><p>Set |serialized|.\[[M43]] to |value|'s <a for=matrix>m43 element</a>.
<li><p>Set |serialized|.\[[M43]] to |value|'s <a for=matrix>m43 element</a>.

<li><p>Set |serialized|.\[[M44]] to |value|'s <a for=matrix>m44 element</a>.
<li><p>Set |serialized|.\[[M44]] to |value|'s <a for=matrix>m44 element</a>.

<li><p>Set |serialized|.\[[Is2D]] to |value|'s <a for=matrix>is 2D</a>.
<li><p>Set |serialized|.\[[Is2D]] to <code>false</code>.
</ol>

<p>Their <a>deserialization steps</a>, given |serialized| and |value|, are:

<ol>
<li><p>Set |value|'s <a for=matrix>m11 element</a> to |serialized|.\[[M11]].
<li>
<p>If |serialized|.\[[Is2D]] is <code>true</code>:

<ol>
<li><p>Set |value|'s <a for=matrix>m11 element</a> to |serialized|.\[[M11]].

<li><p>Set |value|'s <a for=matrix>m12 element</a> to |serialized|.\[[M12]].

<li><p>Set |value|'s <a for=matrix>m13 element</a> to ''0''.

<li><p>Set |value|'s <a for=matrix>m12 element</a> to |serialized|.\[[M12]].
<li><p>Set |value|'s <a for=matrix>m14 element</a> to ''0''.

<li><p>Set |value|'s <a for=matrix>m13 element</a> to |serialized|.\[[M13]].
<li><p>Set |value|'s <a for=matrix>m21 element</a> to |serialized|.\[[M21]].

<li><p>Set |value|'s <a for=matrix>m14 element</a> to |serialized|.\[[M14]].
<li><p>Set |value|'s <a for=matrix>m22 element</a> to |serialized|.\[[M22]].

<li><p>Set |value|'s <a for=matrix>m21 element</a> to |serialized|.\[[M21]].
<li><p>Set |value|'s <a for=matrix>m23 element</a> to ''0''.

<li><p>Set |value|'s <a for=matrix>m22 element</a> to |serialized|.\[[M22]].
<li><p>Set |value|'s <a for=matrix>m24 element</a> to ''0''.

<li><p>Set |value|'s <a for=matrix>m23 element</a> to |serialized|.\[[M23]].
<li><p>Set |value|'s <a for=matrix>m31 element</a> to ''0''.

<li><p>Set |value|'s <a for=matrix>m24 element</a> to |serialized|.\[[M24]].
<li><p>Set |value|'s <a for=matrix>m32 element</a> to ''0''.

<li><p>Set |value|'s <a for=matrix>m31 element</a> to |serialized|.\[[M31]].
<li><p>Set |value|'s <a for=matrix>m33 element</a> to ''1''.

<li><p>Set |value|'s <a for=matrix>m32 element</a> to |serialized|.\[[M32]].
<li><p>Set |value|'s <a for=matrix>m34 element</a> to ''0''.

<li><p>Set |value|'s <a for=matrix>m33 element</a> to |serialized|.\[[M33]].
<li><p>Set |value|'s <a for=matrix>m41 element</a> to |serialized|.\[[M41]].

<li><p>Set |value|'s <a for=matrix>m34 element</a> to |serialized|.\[[M34]].
<li><p>Set |value|'s <a for=matrix>m42 element</a> to |serialized|.\[[M42]].

<li><p>Set |value|'s <a for=matrix>m41 element</a> to |serialized|.\[[M41]].
<li><p>Set |value|'s <a for=matrix>m43 element</a> to ''0''.

<li><p>Set |value|'s <a for=matrix>m42 element</a> to |serialized|.\[[M42]].
<li><p>Set |value|'s <a for=matrix>m44 element</a> to ''1''.

<li><p>Set |value|'s <a for=matrix>m43 element</a> to |serialized|.\[[M43]].
<li><p>Set |value|'s <a for=matrix>is 2D</a> to <code>true</code>.
</ol>

<li>
<p>Otherwise:

<ol>
<li><p>Set |value|'s <a for=matrix>m11 element</a> to |serialized|.\[[M11]].

<li><p>Set |value|'s <a for=matrix>m12 element</a> to |serialized|.\[[M12]].

<li><p>Set |value|'s <a for=matrix>m13 element</a> to |serialized|.\[[M13]].

<li><p>Set |value|'s <a for=matrix>m14 element</a> to |serialized|.\[[M14]].

<li><p>Set |value|'s <a for=matrix>m21 element</a> to |serialized|.\[[M21]].

<li><p>Set |value|'s <a for=matrix>m22 element</a> to |serialized|.\[[M22]].

<li><p>Set |value|'s <a for=matrix>m44 element</a> to |serialized|.\[[M44]].
<li><p>Set |value|'s <a for=matrix>m23 element</a> to |serialized|.\[[M23]].

<li><p>Set |value|'s <a for=matrix>is 2D</a> to |serialized|.\[[Is2D]].
<li><p>Set |value|'s <a for=matrix>m24 element</a> to |serialized|.\[[M24]].

<li><p>Set |value|'s <a for=matrix>m31 element</a> to |serialized|.\[[M31]].

<li><p>Set |value|'s <a for=matrix>m32 element</a> to |serialized|.\[[M32]].

<li><p>Set |value|'s <a for=matrix>m33 element</a> to |serialized|.\[[M33]].

<li><p>Set |value|'s <a for=matrix>m34 element</a> to |serialized|.\[[M34]].

<li><p>Set |value|'s <a for=matrix>m41 element</a> to |serialized|.\[[M41]].

<li><p>Set |value|'s <a for=matrix>m42 element</a> to |serialized|.\[[M42]].

<li><p>Set |value|'s <a for=matrix>m43 element</a> to |serialized|.\[[M43]].

<li><p>Set |value|'s <a for=matrix>m44 element</a> to |serialized|.\[[M44]].

<li><p>Set |value|'s <a for=matrix>is 2D</a> to <code>false</code>.
</ol>
</ol>


Expand Down

0 comments on commit bc125de

Please sign in to comment.