--- a/master/painting.html Wed May 23 15:55:25 2012 +1000
+++ b/master/painting.html Thu May 24 10:00:30 2012 +1000
@@ -1341,171 +1341,200 @@
<edit:elementsummary name='marker'/>
- <div class="adef-list">
- <p><em>Attribute definitions:</em></p>
- <dl>
- <dt id="MarkerUnitsAttribute"><span
- class="adef">markerUnits</span> = "<span
- class="attr-value">strokeWidth |
- userSpaceOnUse</span>"</dt>
- <dd>Defines the coordinate system for attributes
- <a>'markerWidth'</a>, <a>'markerHeight'</a> and the
- contents of the <a>'marker element'</a>.<br />
- If <span class="attr-value">markerUnits="strokeWidth"</span>,
- <a>'markerWidth'</a>, <a>'markerHeight'</a> and the contents
- of the <a>'marker element'</a> represent values in a coordinate system
- which has a single unit equal the size in user units of the
- current stroke width (see the <a>'stroke-width'</a> property) in
- place for the graphic object referencing the marker.<br />
- If <span class="attr-value">markerUnits="userSpaceOnUse"</span>,
- <a>'markerWidth'</a>, <a>'markerHeight'</a> and the contents
- of the <a>'marker element'</a> represent values in the current
- user coordinate system in place for the graphic object
- referencing the marker (i.e., the user coordinate system for
- the element referencing the <a>'marker element'</a> element via a
- <a>'marker property'</a>, <a>'marker-start'</a>, <a>'marker-mid'</a>
- or <a>'marker-end'</a> property).<br />
- If attribute <a>'markerUnits'</a> is not specified, then the effect
- is as if a value of <span class="attr-value">'strokeWidth'</span>
- were specified.<br />
- <span class="anim-target"><a href="animate.html#Animatable">Animatable</a>: yes.</span></dd>
- <dt id="MarkerElementRefXAttribute"><span
- class="adef">refX</span> = "<span class="attr-value"><a
- href="types.html#DataTypeCoordinate"><coordinate></a></span>"</dt>
- <dd>The x-axis coordinate of the reference point which is
- to be aligned exactly at the marker position. The
- coordinate is defined in the coordinate system after
- application of the <a>'viewBox'</a> and <a>'preserveAspectRatio'</a>
- attributes.<br />
- If the attribute is not specified, the effect is as if a
- value of "0" were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="MarkerElementRefYAttribute"><span
- class="adef">refY</span> = "<span class="attr-value"><a
- href="types.html#DataTypeCoordinate"><coordinate></a></span>"</dt>
- <dd>The y-axis coordinate of the reference point which is
- to be aligned exactly at the marker position. The
- coordinate is defined in the coordinate system after
- application of the <a>'viewBox'</a> and <a>'preserveAspectRatio'</a>
- attributes.<br />
- If the attribute is not specified, the effect is as if a
- value of "0" were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="MarkerWidthAttribute"><span
- class="adef">markerWidth</span> = "<span
- class="attr-value"><a
- href="types.html#DataTypeLength"><length></a></span>"</dt>
- <dd>Represents the width of the viewport into which the
- marker is to be fitted when it is rendered.<br />
- A negative value is an error (see <a
- href="implnote.html#ErrorProcessing">Error processing</a>).
- A value of zero disables rendering of the element.<br />
- If the attribute is not specified, the effect is as if a
- value of "3" were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="MarkerHeightAttribute"><span
- class="adef">markerHeight</span> = "<span
- class="attr-value"><a
- href="types.html#DataTypeLength"><length></a></span>"</dt>
- <dd>Represents the height of the viewport into which the
- marker is to be fitted when it is rendered.<br />
- A negative value is an error (see <a
- href="implnote.html#ErrorProcessing">Error processing</a>).
- A value of zero disables rendering of the element.<br />
- If the attribute is not specified, the effect is as if a
- value of "3" were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>:
- yes.</span></dd>
- <dt id="OrientAttribute"><span class="adef">orient</span> = "<span
- class="attr-value">auto | <a
- href="types.html#DataTypeAngle"><angle></a></span>"</dt>
- <dd>
- Indicates how the marker is rotated.<br />
- <br />
- A value of <span class='attr-value'>'auto'</span> indicates that the marker is
- oriented such that its positive x-axis is pointing as
- follows:
- <ol type="a">
- <li>
- If there is a path segment coming into the
- vertex and another path segment going out of the vertex,
- the marker's positive x-axis should point toward the
- angle bisector for the angle at the given vertex, where
- that angle has one side consisting of tangent vector for
- the path segment going into the vertex and the other side
- the tangent vector for the path segment going out of the
- vertex. Note:
- <ul>
- <li>If the tangent vectors are the same, the angle bisector equals the two tangent vectors.</li>
- <li>If an incoming and an outgoing vertex produce a zero vector the direction of marker is undefined.</li>
- </ul>
- </li>
- <li>
- If there is only a path segment going into the vertex (e.g.,
- the last vertex on an open path), the marker's positive
- x-axis should point in the same direction as the tangent
- vector for the path segment going into the vertex.
- </li>
- <li>
- If there is only a path segment going out of the vertex
- (e.g., the first vertex on an open path), the marker's
- positive x-axis should point in the same direction as the
- tangent vector for the path segment going out of the
- vertex. (Refer to <a href="implnote.html#PathElementImplementationNotes"><span class='element-name'>'path'</span>
- element implementation notes</a> for a more thorough
- discussion of the directionality of path segments.)
- </li>
- </ol>
- <br />
- In all cases for closed subpaths (e.g., subpaths which
- end with a <a
- href="paths.html#PathDataClosePathCommand">'closepath'</a>
- command), the orientation of the marker corresponding to
- the initial point of the subpath is calculated assuming
- that:
- <ul>
- <li>the path segment going into the vertex is the path
- segment corresponding to the closepath</li>
- <li>the path segment coming out of the vertex is the
- first path segment in the subpath</li>
- </ul>
- <br />
- When a <a
- href="paths.html#PathDataClosePathCommand">'closepath'</a>
- command is followed by a command other than a <a
- href="paths.html#PathDataMovetoCommands">'moveto'</a>
- command, then the orientation of the marker corresponding
- to the <a
- href="paths.html#PathDataClosePathCommand">'closepath'</a>
- command is calculated assuming that:
- <ul>
- <li>the path segment going into the vertex is the path
- segment corresponding to the closepath</li>
- <li>the path segment coming out of the vertex is the
- first path segment of the subsequent subpath</li>
- </ul>
- <br />
- A <a><angle></a> value represents a
- particular orientation in the user space of the graphic
- object referencing the marker. For example, if a value of
- "0" is given, then the marker will be drawn such that its
- x-axis will align with the x-axis of the user space of
- the graphic object referencing the marker. If the
- attribute is not specified, the effect is as if a value
- of "0" were specified.<br />
- <span class="anim-target"><a
- href="animate.html#Animatable">Animatable</a>: yes
- (non-additive).</span>
- </dd>
- </dl>
- </div>
+<p><em>Attribute definitions:</em></p>
+
+<style>
+table.attrdef { border-left-color: #888; border-left-width: 0; background-color: #eee; font-size: 90% }
+table.attrdef th, table.attrdef td { border-bottom-color: #ccc }
+
+table.attrdef th:first-child,
+table.attrdef td:first-child { width: 16em }
+
+table.attrdef th:first-child + th,
+table.attrdef td:first-child + td { width: auto }
+
+table.attrdef th:first-child + th + th,
+table.attrdef td:first-child + td + td { width: 6em }
+
+table.attrdef th:first-child + th + th + th,
+table.attrdef td:first-child + td + td + td { width: 6em }
+</style>
+
+<table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn>markerUnits</dfn></td>
+ <td>strokeWidth | userSpaceOnUse</td>
+ <td>strokeWidth</td>
+ <td>yes</td>
+ </tr>
+</table>
+
+<p>The <a>'markerUnits'</a> attribute defines the coordinate system for
+attributes <a>'markerWidth'</a>, <a>'markerHeight'</a> and the
+contents of the <a>'marker element'</a>. Values have the
+following meanings:</p>
+
+<dl>
+ <dt><span class="attr-value">strokeWidth</span></dt>
+ <dd><a>'markerWidth'</a>, <a>'markerHeight'</a> and the contents
+ of the <a>'marker element'</a> represent values in a coordinate system
+ which has a single unit equal the size in user units of the
+ current stroke width (see the <a>'stroke-width'</a> property) in
+ place for the graphic object referencing the marker.</dd>
+
+ <dt><span class="attr-value">userSpaceOnUse</span></dt>
+ <dd><a>'markerWidth'</a>, <a>'markerHeight'</a> and the contents
+ of the <a>'marker element'</a> represent values in the current
+ user coordinate system in place for the graphic object
+ referencing the marker (i.e., the user coordinate system for
+ the element referencing the <a>'marker element'</a> element via a
+ <a>'marker property'</a>, <a>'marker-start'</a>, <a>'marker-mid'</a>
+ or <a>'marker-end'</a> property).</dd>
+</dl>
+
+<table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn>refX</dfn>, <dfn>refY</dfn></td>
+ <td><a><coordinate></a></td>
+ <td>0</td>
+ <td>yes</td>
+ </tr>
+</table>
+
+<p>The <a>'refX'</a> and <a>'refY'</a> attributes define the reference
+point which is to be aligned exactly at the marker position. They
+are interpreted as being in the coordinate system after application
+of the <a>'viewBox'</a> and <a>'preserveAspectRatio'</a> attributes.</p>
+
+<table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn>markerWidth</dfn>, <dfn>markerHeight</dfn></td>
+ <td><a><length></a></td>
+ <td>3</td>
+ <td>yes</td>
+ </tr>
+</table>
+
+<p>The <a>'markerWidth'</a> and <a>'markerHeight'</a> attributes
+represent the size of the viewport into which the marker is to
+be fitted when it is rendered. A value of zero for either
+attribute disables rendering of the element. A negative value for either
+attribute is an error (see
+<a href="implnote.html#ErrorProcessing">Error processing</a>).</p>
+
+<table class="propdef attrdef">
+ <tr>
+ <th>Name</th>
+ <th>Value</th>
+ <th>Lacuna value</th>
+ <th>Animatable</th>
+ </tr>
+ <tr>
+ <td><dfn>orient</dfn></td>
+ <td>auto | <a><angle></a></td>
+ <td>0</td>
+ <td>yes (non-additive)</td>
+ </tr>
+</table>
+
+<p>The <a>'orient'</a> attribute indicates how the marker
+is rotated. Values have the following meaning:</p>
+
+<dl>
+ <dt><span class="attr-value">'auto'</span></dt>
+ <dd>
+ <p>A value of <span class="attr-value">'auto'</span>
+ indicates that the marker is oriented such that its positive
+ x-axis is pointing as follows:</p>
+
+ <ol type="a">
+ <li>
+ If there is a path segment coming into the
+ vertex and another path segment going out of the vertex,
+ the marker's positive x-axis should point toward the
+ angle bisector for the angle at the given vertex, where
+ that angle has one side consisting of tangent vector for
+ the path segment going into the vertex and the other side
+ the tangent vector for the path segment going out of the
+ vertex. Note:
+ <ul>
+ <li>If the tangent vectors are the same, the angle bisector equals the two tangent vectors.</li>
+ <li>If an incoming and an outgoing vertex produce a zero vector the direction of marker is undefined.</li>
+ </ul>
+ </li>
+ <li>
+ If there is only a path segment going into the vertex (e.g.,
+ the last vertex on an open path), the marker's positive
+ x-axis should point in the same direction as the tangent
+ vector for the path segment going into the vertex.
+ </li>
+ <li>
+ If there is only a path segment going out of the vertex
+ (e.g., the first vertex on an open path), the marker's
+ positive x-axis should point in the same direction as the
+ tangent vector for the path segment going out of the
+ vertex. (Refer to <a href="implnote.html#PathElementImplementationNotes"><span class='element-name'>'path'</span>
+ element implementation notes</a> for a more thorough
+ discussion of the directionality of path segments.)
+ </li>
+ </ol>
+
+ <p>In all cases for closed subpaths (e.g., subpaths which end with a
+ <a href="paths.html#PathDataClosePathCommand">'closepath'</a> command),
+ the orientation of the marker corresponding to the initial point of the
+ subpath is calculated assuming that:</p>
+
+ <ul>
+ <li>the path segment going into the vertex is the path segment
+ corresponding to the closepath</li>
+
+ <li>the path segment coming out of the vertex is the first path
+ segment in the subpath</li>
+ </ul>
+
+ <p>When a <a href="paths.html#PathDataClosePathCommand">'closepath'</a>
+ command is followed by a command other than a
+ <a href="paths.html#PathDataMovetoCommands">'moveto'</a> command, then the
+ orientation of the marker corresponding to the
+ <a href="paths.html#PathDataClosePathCommand">'closepath'</a> command is
+ calculated assuming that:</p>
+
+ <ul>
+ <li>the path segment going into the vertex is the path segment
+ corresponding to the closepath</li>
+
+ <li>the path segment coming out of the vertex is the first path
+ segment of the subsequent subpath</li>
+ </ul>
+ </dd>
+
+ <dt><span class="attr-value"><a><angle></a></span></dt>
+ <dd>
+ <p>An <a><angle></a> value represents a particular orientation
+ in the user space of the graphic object referencing the marker. For
+ example, if a value of <span class="attr-value">'0'</span> is given, then the
+ marker will be drawn such that its x-axis will align with the x-axis of the user
+ space of the graphic object referencing the marker.</p>
+ </dd>
+</dl>
<p>Markers are drawn such that their reference point (i.e.,
attributes <a>'refX'</a> and <a>'refY'</a>) is positioned at the