Skip to content

Commit 4245378

Browse files
committed
Back ported definition for CTM and local coordinate system from SVG 1.1.
1 parent 9c554d0 commit 4245378

3 files changed

Lines changed: 113 additions & 55 deletions

File tree

css3-transforms/ChangeLog

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
2012-06-04 dschulze@adobe.com
2+
Back ported definition for CTM and local coordinate system from SVG 1.1.
3+
More cleanup on term referencing.
4+
15
2012-06-01 dschulze@adobe.com
26
More corrections on the SVG animation part.
37

css3-transforms/Overview.html

Lines changed: 70 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@
3939

4040
<h1>CSS Transforms</h1>
4141

42-
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 1 June 2012</h2>
42+
<h2 class="no-num no-toc" id=longstatus-date>Editor's Draft 5 June 2012</h2>
4343

4444
<dl>
4545
<dt>This version:
4646

4747
<dd> <a
48-
href="http://www.w3.org/TR/2012/ED-css3-transforms-20120601/">http://dev.w3.org/csswg/css3-transforms/</a>
49-
<!--http://www.w3.org/TR/2012/WD-css3-transforms-20120601/-->
48+
href="http://www.w3.org/TR/2012/ED-css3-transforms-20120605/">http://dev.w3.org/csswg/css3-transforms/</a>
49+
<!--http://www.w3.org/TR/2012/WD-css3-transforms-20120605/-->
5050

5151
<dt>Latest version:
5252

@@ -473,26 +473,44 @@ <h2 id=definitions><span class=secno>4. </span>Definitions</h2>
473473
class=property>patternTransform</code>’ or ‘<code
474474
class=property>gradientTransform</code>’.</p>
475475

476+
<dt id=TermLocalCoordinateSystem><dfn id=local-coordinate-system>local
477+
coordinate system</dfn>
478+
479+
<dd>
480+
<p> In general, a coordinate system defines locations and distances on
481+
the current canvas. The current local coordinate system (also user
482+
coordinate system) is the coordinate system that is currently active and
483+
which is used to define how coordinates and lengths are located and
484+
computed, respectively, on the current canvas.</p>
485+
476486
<dt id=TermPerspectiveMatrix><dfn id=perspective-matrix>perspective
477487
matrix</dfn>
478488

479489
<dd>
480490
<p> A matrix computed from the values of the ‘<a
481-
href="#perspective"><code class=css><code
482-
class=property>perspective</code></code></a>’ and ‘<a
483-
href="#perspective-origin"><code class=css><code
484-
class=property>perspective-origin</code></code></a>’ properties as
485-
described <a href="#perspective-matrix-computation">below</a>.</p>
491+
href="#perspective"><code class=property>perspective</code></a>’ and
492+
<a href="#perspective-origin"><code
493+
class=property>perspective-origin</code></a>’ properties as described
494+
<a href="#perspective-matrix-computation">below</a>.</p>
486495

487496
<dt id=TermTransformationMatrix><dfn
488497
id=transformation-matrix>transformation matrix</dfn>
489498

490499
<dd>
491-
<p> A matrix computed from the values of the ‘<a href="#effects"><code
492-
class=css><code class=property>transform</code></code></a>’ and ‘<a
493-
href="#transform-origin"><code class=css><code
494-
class=property>transform-origin</code></code></a>’ properties as
495-
described <a href="#transformation-matrix-computation">below</a>.</p>
500+
<p> A matrix that defines the mathematical mapping from one coordinate
501+
system into another. It is computed from the values of the ‘<a
502+
href="#effects"><code class=property>transform</code></a>’ and ‘<a
503+
href="#transform-origin"><code
504+
class=property>transform-origin</code></a>’ properties as described <a
505+
href="#transformation-matrix-computation">below</a>.</p>
506+
507+
<dt id=TermCurrentTransformationMatrix><dfn
508+
id=current-transformation-matrix-ctm>current transformation matrix
509+
(CTM)</dfn>
510+
511+
<dd>
512+
<p> A matrix that defines the mapping from the local coordinate system
513+
into the viewport coordinate system.</p>
496514

497515
<dt id=TermAccumulated3DTransformationMatrix> <dfn
498516
id=accumulated-3d-transformation-matrix>accumulated 3D transformation
@@ -504,7 +522,7 @@ <h2 id=definitions><span class=secno>4. </span>Definitions</h2>
504522
href="#accumulated-3d-transformation-matrix-computation">below</a>.</p>
505523

506524
<dt id=TermIdentityTransformFunction> <dfn
507-
id=identity-transform-function>Identity transform function</dfn>
525+
id=identity-transform-function>identity transform function</dfn>
508526

509527
<dd>
510528
<p> A <a href="#transform-functions">transform function</a> that is
@@ -598,32 +616,36 @@ <h2 id=transform-rendering><span class=secno>6. </span>The Transform
598616

599617
<p> Specifying a value other than ‘<code class=css>none</code>’ for the
600618
<a href="#effects"><code class=css>transform</code></a>’ property
601-
establishes a new <em>local coordinate system</em> at the element that it
602-
is applied to. The mapping from where the element would have rendered into
603-
that local coordinate system is given by the element's <a
604-
href="#TermTransformationMatrix"><i>transformation matrix</i></a>.
605-
Transformations are cumulative. That is, elements establish their local
606-
coordinate system within the coordinate system of their parent. From the
607-
perspective of the user, an element effectively accumulates all the ‘<a
619+
establishes a new <a class=term href="#local-coordinate-system">local
620+
coordinate system</a> at the element that it is applied to. The mapping
621+
from where the element would have rendered into that local coordinate
622+
system is given by the element's <a class=term
623+
href="#transformation-matrix">transformation matrix</a>. Transformations
624+
are cumulative. That is, elements establish their local coordinate system
625+
within the coordinate system of their parent. From the perspective of the
626+
user, an element effectively accumulates all the ‘<a
608627
href="#effects"><code class=property>transform</code></a>’ properties of
609628
its ancestors as well as any local transform applied to it. The
610-
accumulation of these transforms defines a <em>current transformation
611-
matrix (CTM)</em> for the element.
629+
accumulation of these transforms defines a <a class=term
630+
href="#current-transformation-matrix-ctm">current transformation matrix
631+
(CTM)</a> for the element.
612632

613633
<p> The coordinate space behaves as described in the <a
614634
href="http://www.w3.org/TR/SVG/coords.html#EstablishingANewUserSpace">coordinate
615-
system transformations</a> section of the SVG 1.1 specification. This is a
616-
coordinate system with two axes: the X axis increases horizontally to the
617-
right; the Y axis increases vertically downwards. Three-dimensional
618-
transform functions extent this coordinate space into three dimensions,
619-
adding a Z axis perpendicular to the plane of the screen, that increases
620-
towards the viewer.
621-
622-
<p id=transformation-matrix-computation> The <a
623-
href="#TermTransformationMatrix"><i>transformation matrix</i></a> is
624-
computed from the ‘<a href="#effects"><code
625-
class=property>transform</code></a>’ and ‘<a
626-
href="#transform-origin"><code
635+
system transformations</a> section of <a href="#SVG11"
636+
rel=biblioentry>[SVG11]<!--{{SVG11}}--></a>. This is a coordinate system
637+
with two axes: the X axis increases horizontally to the right; the Y axis
638+
increases vertically downwards. Three-dimensional transform functions
639+
extent this coordinate space into three dimensions, adding a Z axis
640+
perpendicular to the plane of the screen, that increases towards the
641+
viewer.
642+
643+
<p class=issue> The coordinate space should be defined in this spec.
644+
645+
<p id=transformation-matrix-computation> The <a class=term
646+
href="#transformation-matrix">transformation matrix</a> is computed from
647+
the ‘<a href="#effects"><code class=property>transform</code></a>’ and
648+
<a href="#transform-origin"><code
627649
class=property>transform-origin</code></a>’ properties as follows:
628650

629651
<ol>
@@ -2592,8 +2614,10 @@ <h2 id=transform-function-lists><span class=secno>16. </span> The Transform
25922614
transform functions, applied from the outside in. The resulting transform
25932615
is the matrix multiplication of the list of transforms.
25942616

2595-
<p> If a transform function causes the CTM of an object to be
2596-
non-invertible, the object and it's content does not get displayed.
2617+
<p> If a transform function causes the <a class=term
2618+
href="#current-transformation-matrix-ctm">current transformation matrix
2619+
(CTM)</a> of an object to be non-invertible, the object and it's content
2620+
does not get displayed.
25972621

25982622
<div class=example>
25992623
<p> The object in the following example gets scaled by 0.</p>
@@ -3476,8 +3500,15 @@ <h2 class=no-num id=index>Index</h2>
34763500
<li>bounding box, <a href="#bounding-box"
34773501
title="bounding box"><strong>4.</strong></a>
34783502

3479-
<li>Identity transform function, <a href="#identity-transform-function"
3480-
title="Identity transform function"><strong>4.</strong></a>
3503+
<li>current transformation matrix (CTM), <a
3504+
href="#current-transformation-matrix-ctm"
3505+
title="current transformation matrix (CTM)"><strong>4.</strong></a>
3506+
3507+
<li>identity transform function, <a href="#identity-transform-function"
3508+
title="identity transform function"><strong>4.</strong></a>
3509+
3510+
<li>local coordinate system, <a href="#local-coordinate-system"
3511+
title="local coordinate system"><strong>4.</strong></a>
34813512

34823513
<li>perspective, <a href="#perspective"
34833514
title=perspective><strong>10.</strong></a>

css3-transforms/Transforms.src.html

Lines changed: 39 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -201,17 +201,35 @@ <h2 id="definitions">Definitions</h2>
201201
</p>
202202
</dd>
203203

204+
<dt id="TermLocalCoordinateSystem"><dfn>local coordinate system</dfn></dt>
205+
<dd>
206+
<p>
207+
In general, a coordinate system defines locations and distances on the current
208+
canvas. The current local coordinate system (also user coordinate system) is the
209+
coordinate system that is currently active and which is used to define how
210+
coordinates and lengths are located and computed, respectively, on the current
211+
canvas.
212+
</p>
213+
</dd>
214+
204215
<dt id="TermPerspectiveMatrix"><dfn>perspective matrix</dfn></dt>
205216
<dd>
206217
<p>
207-
A matrix computed from the values of the '<code class="property">perspective</code>' and '<code class="property">perspective-origin</code>' properties as described <a href="#perspective-matrix-computation">below</a>.
218+
A matrix computed from the values of the 'perspective' and 'perspective-origin' properties as described <a href="#perspective-matrix-computation">below</a>.
208219
</p>
209220
</dd>
210221

211222
<dt id="TermTransformationMatrix"><dfn>transformation matrix</dfn></dt>
212223
<dd>
213224
<p>
214-
A matrix computed from the values of the '<code class="property">transform</code>' and '<code class="property">transform-origin</code>' properties as described <a href="#transformation-matrix-computation">below</a>.
225+
A matrix that defines the mathematical mapping from one coordinate system into another. It is computed from the values of the 'transform' and 'transform-origin' properties as described <a href="#transformation-matrix-computation">below</a>.
226+
</p>
227+
</dd>
228+
229+
<dt id="TermCurrentTransformationMatrix"><dfn>current transformation matrix (CTM)</dfn></dt>
230+
<dd>
231+
<p>
232+
A matrix that defines the mapping from the local coordinate system into the viewport coordinate system.
215233
</p>
216234
</dd>
217235

@@ -228,7 +246,7 @@ <h2 id="definitions">Definitions</h2>
228246
</dd>
229247

230248
<dt id="TermIdentityTransformFunction">
231-
<dfn>Identity transform function</dfn>
249+
<dfn>identity transform function</dfn>
232250
</dt>
233251
<dd>
234252
<p>
@@ -312,27 +330,31 @@ <h2 id="two-dimensional-subset">
312330
<h2 id="transform-rendering">The Transform Rendering Model</h2>
313331
<!-- This section is normative -->
314332
<p>
315-
Specifying a value other than ''none'' for the ''transform'' property establishes a new
316-
<em>local coordinate system</em> at the element that it is applied to. The mapping from
317-
where the element would have rendered into that local coordinate system is given by the
318-
element's <a href="#TermTransformationMatrix"><i>transformation matrix</i></a>.
319-
Transformations are cumulative. That is, elements establish their local coordinate
320-
system within the coordinate system of their parent. From the perspective of the user,
321-
an element effectively accumulates all the 'transform' properties of its ancestors as
322-
well as any local transform applied to it. The accumulation of these transforms defines
323-
a <em>current transformation matrix (CTM)</em> for the element.
333+
Specifying a value other than ''none'' for the ''transform'' property establishes a
334+
new <span class="term">local coordinate system</span> at the element that it is
335+
applied to. The mapping from where the element would have rendered into that local
336+
coordinate system is given by the element's <span class="term">transformation
337+
matrix</span>. Transformations are cumulative. That is, elements establish their local
338+
coordinate system within the coordinate system of their parent. From the perspective
339+
of the user, an element effectively accumulates all the 'transform' properties of its
340+
ancestors as well as any local transform applied to it. The accumulation of these
341+
transforms defines a <span class="term">current transformation matrix (CTM)</span> for
342+
the element.
324343
</p>
325344
<p>
326345
The coordinate space behaves as described in the <a
327346
href="http://www.w3.org/TR/SVG/coords.html#EstablishingANewUserSpace">coordinate
328-
system transformations</a> section of the SVG 1.1 specification. This is a
347+
system transformations</a> section of [[SVG11]]. This is a
329348
coordinate system with two axes: the X axis increases horizontally to the right; the
330349
Y axis increases vertically downwards. Three-dimensional transform functions extent
331350
this coordinate space into three dimensions, adding a Z axis perpendicular to the
332351
plane of the screen, that increases towards the viewer.
333352
</p>
353+
<p class="issue">
354+
The coordinate space should be defined in this spec.
355+
</p>
334356
<p id="transformation-matrix-computation">
335-
The <a href="#TermTransformationMatrix"><i>transformation matrix</i></a> is computed
357+
The <span class="term">transformation matrix</span> is computed
336358
from the 'transform' and 'transform-origin' properties as follows:
337359
<ol>
338360
<li>Start with the identity matrix.</li>
@@ -2403,8 +2425,9 @@ <h2 id="transform-function-lists">
24032425
</p>
24042426

24052427
<p>
2406-
If a transform function causes the CTM of an object to be non-invertible, the object
2407-
and it's content does not get displayed.
2428+
If a transform function causes the <span class="term">current transformation matrix
2429+
(CTM)</span> of an object to be non-invertible, the object and it's content does not
2430+
get displayed.
24082431
</p>
24092432

24102433
<div class="example">

0 commit comments

Comments
 (0)