- From: SVG Working Group repository <cam@mcc.id.au>
- Date: Fri, 14 Sep 2012 09:16:48 -0700
- To: public-svg-wg@w3.org
details: https://svgwg.org/hg/svg2/rev/9f46c2f1cb89 branches: changeset: 369:9f46c2f1cb89 user: Cameron McCormack <cam@mcc.id.au> date: Sat Sep 15 02:15:32 2012 +1000 description: Add isPointIn{Fill,Stroke} methods, and an SVGMarkerList to access the markers painted on a markable element. (ACTION-3275) diffstat: master/definitions.xml | 4 + master/painting.html | 155 +++++++++++++++++++++++++++++++++++++++++++++++++ master/paths.html | 5 +- master/shapes.html | 24 ++++--- master/text.html | 2 +- master/types.html | 67 +++++++++++++++++++++ 6 files changed, 244 insertions(+), 13 deletions(-) diffs (512 lines): diff --git a/master/definitions.xml b/master/definitions.xml --- a/master/definitions.xml +++ b/master/definitions.xml @@ -1052,16 +1052,17 @@ <interface name='SVGNumberList' href='types.html#InterfaceSVGNumberList'/> <interface name='SVGAnimatedNumberList' href='types.html#InterfaceSVGAnimatedNumberList'/> <interface name='SVGLengthList' href='types.html#InterfaceSVGLengthList'/> <interface name='SVGColor' href='types.html#InterfaceSVGColor'/> <interface name='SVGICCColor' href='types.html#InterfaceSVGICCColor'/> <interface name='SVGLocatableElement' href='types.html#InterfaceSVGLocatableElement'/> <interface name='SVGTransformableElement' href='types.html#InterfaceSVGTransformableElement'/> <interface name='SVGGraphicsElement' href='types.html#InterfaceSVGGraphicsElement'/> + <interface name='SVGGeometryElement' href='types.html#InterfaceSVGGeometryElement'/> <interface name='SVGDefinitionElement' href='types.html#InterfaceSVGDefinitionElement'/> <interface name='SVGTests' href='types.html#InterfaceSVGTests'/> <interface name='SVGURIReference' href='types.html#InterfaceSVGURIReference'/> <interface name='SVGCSSRule' href='types.html#InterfaceSVGCSSRule'/> <interface name='SVGRenderingIntent' href='types.html#InterfaceSVGRenderingIntent'/> <interface name='SVGAnimatedBoolean' href='types.html#InterfaceSVGAnimatedBoolean'/> <interface name='SVGUnitTypes' href='types.html#InterfaceSVGUnitTypes'/> <interface name='SVGStyleElement' href='styling.html#InterfaceSVGStyleElement'/> @@ -1103,17 +1104,20 @@ <interface name='SVGTRefElement' href='text.html#InterfaceSVGTRefElement'/> <interface name='SVGTextPathElement' href='text.html#InterfaceSVGTextPathElement'/> <interface name='SVGAltGlyphElement' href='text.html#InterfaceSVGAltGlyphElement'/> <interface name='SVGAltGlyphDefElement' href='text.html#InterfaceSVGAltGlyphDefElement'/> <interface name='SVGAltGlyphItemElement' href='text.html#InterfaceSVGAltGlyphItemElement'/> <interface name='SVGGlyphRefElement' href='text.html#InterfaceSVGGlyphRefElement'/> <interface name='SVGTextContentElement' href='text.html#InterfaceSVGTextContentElement'/> <interface name='SVGTextPositioningElement' href='text.html#InterfaceSVGTextPositioningElement'/> + <interface name='SVGMarkableElement' href='painting.html#InterfaceSVGMarkableElement'/> <interface name='SVGMarkerElement' href='painting.html#InterfaceSVGMarkerElement'/> + <interface name='SVGMarkerInstance' href='painting.html#InterfaceSVGMarkerInstance'/> + <interface name='SVGMarkerList' href='painting.html#InterfaceSVGMarkerList'/> <interface name='SVGColorProfileElement' href='color.html#InterfaceSVGColorProfileElement'/> <interface name='SVGColorProfileRule' href='color.html#InterfaceSVGColorProfileRule'/> <interface name='SVGLinearGradientElement' href='pservers.html#InterfaceSVGLinearGradientElement'/> <interface name='SVGRadialGradientElement' href='pservers.html#InterfaceSVGRadialGradientElement'/> <interface name='SVGMeshGradientElement' href='pservers.html#InterfaceSVGMeshGradientElement'/> <interface name='SVGMeshRowElement' href='pservers.html#InterfaceSVGMeshRowElement'/> <interface name='SVGMeshPatchElement' href='pservers.html#InterfaceSVGMeshPatchElement'/> <interface name='SVGStopElement' href='pservers.html#InterfaceSVGStopElement'/> diff --git a/master/painting.html b/master/painting.html --- a/master/painting.html +++ b/master/painting.html @@ -3385,16 +3385,171 @@ interface SVGPaint : SVGColor { void setUri(DOMString uri); void setPaint(unsigned short paintType, DOMString uri, DOMString rgbColor, DOMString iccColor); }; </pre> <p class="issue">There are some missing definitions of SVGPaint members here. The interface might be going away, however.</p> + +<div class="ready-for-wg-review"> +<h3 id="InterfaceSVGMarkerInstance">Interface SVGMarkerInstance</h3> + +<p>The <a>SVGMarkerInstance</a> interface is used to represent an instance +of a marker that is on a <a>markable element</a>. An <a>SVGMarkerInstance</a> +can represent any kind of marker, including <a>positioned markers</a>.</p> + +<p class="issue">What should we do about liveness? If it is live, we +could have it know what index it is for, and always return information +about the marker at that index (and return null for the element if +that index is no longer valid).</p> + +<pre class='idl'>interface <b>SVGMarkerInstance</b> { + readonly attribute <a>SVGMarkerElement</a> element; + readonly attribute float position; + readonly attribute <a>SVGPoint</a> point; + readonly attribute float angle; +};</pre> + +<dl class="interface"> + <dt class="attributes-header">Attributes:</dt> + <dd> + <dl class="attributes"> + <dt id="__svg__SVGMarkerInstance__element" class="attribute first-child"><b>element</b><span class="idl-type-parenthetical"> (readonly <a>SVGMarkerElement</a>)</span></dt> + <dd class="attribute">The <a>'marker element'</a> element that defines + the marker. If the marker is a <a>vertex marker</a>, <a>segment marker</a> + or <a>repeating marker</a>, then this will be the <a>'marker element'</a> + element that the relevant marker property referenced. If the marker is + a <a>positioned marker</a>, then this will be the child <a>'marker element'</a> + element of the <a>markable element</a>.</dd> + + <dt id="__svg__SVGMarkerInstance__position" class="attribute"><b>position</b><span class="idl-type-parenthetical"> (readonly float)</span></dt> + <dd class="attribute">The distance along the <a>equivalent path</a> of the + <a>markable element</a> that the marker is positioned at.</dd> + + <dt id="__svg__SVGMarkerInstance__point" class="attribute"><b>point</b><span class="idl-type-parenthetical"> (readonly <a>SVGPoint</a>)</span></dt> + <dd class="attribute">The point, in the user space of the + <a>markable element</a>, that the marker is positioned at. + The <a>SVGPoint</a> object is read only.</dd> + + <dt id="__svg__SVGMarkerInstance__angle" class="attribute"><b>angle</b><span class="idl-type-parenthetical"> (readonly float)</span></dt> + <dd class="attribute">The orientation of the marker relative to a + vector pointing in the direction of the positive y-axis of the + <a>markable element</a>'s user space.</dd> + </dl> + </dd> +</dl> + + +<h3 id="InterfaceSVGMarkerList">Interface SVGMarkerList</h3> + +<p>The <a>SVGMarkerList</a> interface is used to expose the list of markers that +are painted on a given <a>markable element</a>. This list includes all +<a>vertex markers</a>, <a>segment markers</a>, <a>repeating markers</a> and +<a>positioned markers</a>. The list of <a>SVGMarkerInstance</a> objects +is maintained in the order that the markers are painted (see +<a href='painting.html#Markers'>Markers</a>).</p> + +<pre class='idl'>interface <b>SVGMarkerList</b> { + readonly attribute unsigned long <a href='#__svg__SVGMarkerList__length'>length</a>; + getter <a>SVGMarkerInstance</a>? <a href='#__svg__SVGMarkerList__item'>item</a>(unsigned long index); +};</pre> + +<dl class="interface"> + <dt class="attributes-header">Attributes:</dt> + <dd> + <dl class="attributes"> + <dt id="__svg__SVGMarkerList__length" class="attribute first-child"><b>length</b><span class="idl-type-parenthetical"> (readonly unsigned long)</span></dt> + <dd class="attribute">The number of markers on this element.</dd> + </dl> + </dd> + <dt class="operations-header">Operations:</dt> + <dd> + <dl class="attributes"> + <dt id="__svg__SVGMarkerList__item" class="operation first-child"><a>SVGMarkerInstance</a>? <b>item</b>(unsigned long <var>index</var>)</dt> + <dd class="operation"> + Gets the <a>SVGMarkerInstance</a> at the given position in the + list of markers on this element. + <dl class="operation"> + <dt class="parameters-header">Parameters</dt> + <dd> + <ol class="parameters"> + <li class="parameter first-child"> + <div>unsigned long <var>index</var></div> + <div>The index of the <a>SVGMarkerInstance</a> to return.</div> + </li> + </ol> + </dd> + <dt class="returns-header">Returns</dt> + <dd>Returns the <a>SVGMarkerInstance</a> at position <var>index</var> + in the list of markers on this element, or null if <var>index</var> + is out of range.</dd> + </dl> + </dd> + </dl> + </dd> +</dl> + + +<h3 id="InterfaceSVGMarkableElement">Interface SVGMarkableElement</h3> + +<p>The <a>SVGMarkableElement</a> interface is implemented on all +<a>markable elements</a>, and provides access to the markers that are placed on +the element's path.</p> + +<pre class='idl'>[NoInterfaceObject] +interface <b>SVGMarkableElement</b> { + readonly attribute <a>SVGMarkerList</a> <a href='#__svg__SVGMarkableElement__markers'>markers</a>; + + long <a href='#__svg__SVGMarkableElement__getMarkerIndexFromPoint'>getMarkerIndexFromPoint</a>(<a>SVGPoint</a> point); +};</pre> + +<dl class="interface"> + <dt class="attributes-header">Attributes:</dt> + <dd> + <dl class="attributes"> + <dt id="__svg__SVGMarkableElement__markers" class="attribute first-child"><b>markers</b><span class="idl-type-parenthetical"> (readonly <a>SVGMarkerList</a>)</span></dt> + <dd class="attribute">The list of markers on this element.</dd> + </dl> + </dd> + <dt class="operations-header">Operations:</dt> + <dd> + <dl class="attributes"> + <dt id="__svg__SVGMarkableElement__getMarkerIndexFromPoint" class="operation first-child">long <b>getMarkerIndexFromPoint</b>(<a>SVGPoint</a> point)</dt> + <dd class="operation"> + Returns the index into the <a>SVGMarkerList</a> of the marker that is at + the specified point. Normal hit testing rules apply; the value of the + <a>'pointer-events'</a> property on the elements that comprise the markers, + as well as its value on this element, is honored, and the top-most marker + is selected when there are multiple markers whose content is at the given + point. + <dl class="operation"> + <dt class="parameters-header">Parameters</dt> + <dd> + <ol class="parameters"> + <li class="parameter first-child"> + <div><a>SVGPoint</a> <var>point</var></div> + <div>The point to check for intersection with the markers + on this element. The <a>SVGPoint</a> is interpreted as a + point in the user space of this element.</div> + </li> + </ol> + </dd> + <dt class="returns-header">Returns</dt> + <dd>The index into this element's <a>SVGMarkerList</a> of the marker + at the given point, or -1 if there is no such marker.</dd> + </dl> + </dd> + </dl> + </dd> +</dl> +</div> + + <h3 id="InterfaceSVGMarkerElement">Interface SVGMarkerElement</h3> <edit:with element='marker'> The <a>SVGMarkerElement</a> interface corresponds to the <a>'marker element'</a> element. <pre class="idl">interface <b>SVGMarkerElement</b> : <a>SVGDefinitionElement</a> { diff --git a/master/paths.html b/master/paths.html --- a/master/paths.html +++ b/master/paths.html @@ -2480,17 +2480,17 @@ the same value as <a>normalizedPathSegLi <h3 id="InterfaceSVGPathElement">Interface SVGPathElement</h3> The <a>SVGPathElement</a> interface corresponds to the <a>'path'</a> element. -<pre class="idl">interface <b>SVGPathElement</b> : <a>SVGGraphicsElement</a> { +<pre class="idl">interface <b>SVGPathElement</b> : <a>SVGGeometryElement</a> { readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a> <a href="paths.html#__svg__SVGPathElement__pathLength">pathLength</a>; float <a href="paths.html#__svg__SVGPathElement__getTotalLength">getTotalLength</a>(); <a class="idlinterface" href="coords.html#InterfaceSVGPoint">SVGPoint</a> <a href="paths.html#__svg__SVGPathElement__getPointAtLength">getPointAtLength</a>(float distance); unsigned long <a href="paths.html#__svg__SVGPathElement__getPathSegAtLength">getPathSegAtLength</a>(float distance); <a class="idlinterface" href="paths.html#InterfaceSVGPathSegClosePath">SVGPathSegClosePath</a> <a href="paths.html#__svg__SVGPathElement__createSVGPathSegClosePath">createSVGPathSegClosePath</a>(); <a class="idlinterface" href="paths.html#InterfaceSVGPathSegMovetoAbs">SVGPathSegMovetoAbs</a> <a href="paths.html#__svg__SVGPathElement__createSVGPathSegMovetoAbs">createSVGPathSegMovetoAbs</a>(float x, float y); @@ -2508,17 +2508,18 @@ element. <a class="idlinterface" href="paths.html#InterfaceSVGPathSegLinetoVerticalAbs">SVGPathSegLinetoVerticalAbs</a> <a href="paths.html#__svg__SVGPathElement__createSVGPathSegLinetoVerticalAbs">createSVGPathSegLinetoVerticalAbs</a>(float y); <a class="idlinterface" href="paths.html#InterfaceSVGPathSegLinetoVerticalRel">SVGPathSegLinetoVerticalRel</a> <a href="paths.html#__svg__SVGPathElement__createSVGPathSegLinetoVerticalRel">createSVGPathSegLinetoVerticalRel</a>(float y); <a class="idlinterface" href="paths.html#InterfaceSVGPathSegCurvetoCubicSmoothAbs">SVGPathSegCurvetoCubicSmoothAbs</a> <a href="paths.html#__svg__SVGPathElement__createSVGPathSegCurvetoCubicSmoothAbs">createSVGPathSegCurvetoCubicSmoothAbs</a>(float x, float y, float x2, float y2); <a class="idlinterface" href="paths.html#InterfaceSVGPathSegCurvetoCubicSmoothRel">SVGPathSegCurvetoCubicSmoothRel</a> <a href="paths.html#__svg__SVGPathElement__createSVGPathSegCurvetoCubicSmoothRel">createSVGPathSegCurvetoCubicSmoothRel</a>(float x, float y, float x2, float y2); <a class="idlinterface" href="paths.html#InterfaceSVGPathSegCurvetoQuadraticSmoothAbs">SVGPathSegCurvetoQuadraticSmoothAbs</a> <a href="paths.html#__svg__SVGPathElement__createSVGPathSegCurvetoQuadraticSmoothAbs">createSVGPathSegCurvetoQuadraticSmoothAbs</a>(float x, float y); <a class="idlinterface" href="paths.html#InterfaceSVGPathSegCurvetoQuadraticSmoothRel">SVGPathSegCurvetoQuadraticSmoothRel</a> <a href="paths.html#__svg__SVGPathElement__createSVGPathSegCurvetoQuadraticSmoothRel">createSVGPathSegCurvetoQuadraticSmoothRel</a>(float x, float y); }; -<a>SVGPathElement</a> implements <a>SVGAnimatedPathData</a>;</pre><dl class="interface"> +<a>SVGPathElement</a> implements <a>SVGAnimatedPathData</a>; +<a>SVGPathElement</a> implements <a>SVGMarkableElement</a>;</pre><dl class="interface"> <dt class="attributes-header">Attributes:</dt> <dd> <dl class="attributes"> <dt id="__svg__SVGPathElement__pathLength" class="attribute first-child"><b>pathLength</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGAnimatedNumber">SVGAnimatedNumber</a>)</span></dt> <dd class="attribute"> <div> Corresponds to attribute <a>pathLength</a> on the given <a>'path'</a> diff --git a/master/shapes.html b/master/shapes.html --- a/master/shapes.html +++ b/master/shapes.html @@ -87,17 +87,17 @@ appropriate values for attributes <a>'rx <span class="attr-name"><a href="#RectElementHeightAttribute"><span>height</span></a></span>, <span class="attr-name"><a href="#RectElementRXAttribute"><span>rx</span></a></span>, <span class="attr-name"><a href="#RectElementRYAttribute"><span>ry</span></a></span> </td> </tr> <tr> <th>DOM Interface:</th> <td> -<pre class="idl">interface <b>SVGRectElement</b> : <a>SVGGraphicsElement</a> { +<pre class="idl">interface <b>SVGRectElement</b> : <a>SVGGeometryElement</a> { readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__x">x</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__y">y</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__width">width</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__height">height</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__rx">rx</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__ry">ry</a>; };</pre> </td> @@ -678,17 +678,17 @@ wsp: <h3 id="InterfaceSVGRectElement">Interface SVGRectElement</h3> <edit:with element='rect'> The <a>SVGRectElement</a> interface corresponds to the <a>'rect'</a> element. -<pre class="idl">interface <b>SVGRectElement</b> : <a>SVGGraphicsElement</a> { +<pre class="idl">interface <b>SVGRectElement</b> : <a>SVGGeometryElement</a> { readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__x">x</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__y">y</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__width">width</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__height">height</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__rx">rx</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGRectElement__ry">ry</a>; };</pre><dl class="interface"> <dt class="attributes-header">Attributes:</dt> @@ -751,17 +751,17 @@ Corresponds to attribute <a>'ry'</a> on <h3 id="InterfaceSVGCircleElement">Interface SVGCircleElement</h3> <edit:with element='circle'> The <a>SVGCircleElement</a> interface corresponds to the <a>'circle'</a> element. -<pre class="idl">interface <b>SVGCircleElement</b> : <a>SVGGraphicsElement</a> { +<pre class="idl">interface <b>SVGCircleElement</b> : <a>SVGGeometryElement</a> { readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGCircleElement__cx">cx</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGCircleElement__cy">cy</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGCircleElement__r">r</a>; };</pre><dl class="interface"> <dt class="attributes-header">Attributes:</dt> <dd> <dl class="attributes"> @@ -797,17 +797,17 @@ Corresponds to attribute <a>'r'</a> on t <h3 id="InterfaceSVGEllipseElement">Interface SVGEllipseElement</h3> <edit:with element='ellipse'> The <a>SVGEllipseElement</a> interface corresponds to the <a>'ellipse'</a> element. -<pre class="idl">interface <b>SVGEllipseElement</b> : <a>SVGGraphicsElement</a> { +<pre class="idl">interface <b>SVGEllipseElement</b> : <a>SVGGeometryElement</a> { readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGEllipseElement__cx">cx</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGEllipseElement__cy">cy</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGEllipseElement__rx">rx</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGEllipseElement__ry">ry</a>; };</pre><dl class="interface"> <dt class="attributes-header">Attributes:</dt> <dd> <dl class="attributes"> @@ -852,22 +852,24 @@ Corresponds to attribute <a>'ry'</a> on <h3 id="InterfaceSVGLineElement">Interface SVGLineElement</h3> <edit:with element='line'> The <a>SVGLineElement</a> interface corresponds to the <a>'line'</a> element. -<pre class="idl">interface <b>SVGLineElement</b> : <a>SVGGraphicsElement</a> { +<pre class="idl">interface <b>SVGLineElement</b> : <a>SVGGeometryElement</a> { readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGLineElement__x1">x1</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGLineElement__y1">y1</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGLineElement__x2">x2</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="shapes.html#__svg__SVGLineElement__y2">y2</a>; -};</pre><dl class="interface"> +}; + +<a>SVGLineElement</a> implements <a>SVGMarkableElement</a>;</pre><dl class="interface"> <dt class="attributes-header">Attributes:</dt> <dd> <dl class="attributes"> <dt id="__svg__SVGLineElement__x1" class="attribute first-child"><b>x1</b><span class="idl-type-parenthetical"> (readonly <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a>)</span></dt> <dd class="attribute"> <div> Corresponds to attribute <a>'x1'</a> on the given <a>'line'</a> element. @@ -957,31 +959,33 @@ currently being animated, contains the s <h3 id="InterfaceSVGPolylineElement">Interface SVGPolylineElement</h3> <edit:with element='polyline'> <p>The <a>SVGPolylineElement</a> interface corresponds to the <a>'polyline'</a> element.</p> -<pre class="idl">interface <b>SVGPolylineElement</b> : <a>SVGGraphicsElement</a> { +<pre class="idl">interface <b>SVGPolylineElement</b> : <a>SVGGeometryElement</a> { }; -<a>SVGPolylineElement</a> implements <a>SVGAnimatedPoints</a>;</pre> +<a>SVGPolylineElement</a> implements <a>SVGAnimatedPoints</a>; +<a>SVGPolylineElement</a> implements <a>SVGMarkableElement</a>;</pre> </edit:with> <h3 id="InterfaceSVGPolygonElement">Interface SVGPolygonElement</h3> <edit:with element='polygon'> <p>The <a>SVGPolygonElement</a> interface corresponds to the <a>'polygon'</a> element.</p> -<pre class="idl">interface <b>SVGPolygonElement</b> : <a>SVGGraphicsElement</a> { +<pre class="idl">interface <b>SVGPolygonElement</b> : <a>SVGGeometryElement</a> { }; -<a>SVGPolygonElement</a> implements <a>SVGAnimatedPoints</a>;</pre> +<a>SVGPolygonElement</a> implements <a>SVGAnimatedPoints</a>; +<a>SVGPolygonElement</a> implements <a>SVGMarkableElement</a>;</pre> </edit:with> </body> </html> diff --git a/master/text.html b/master/text.html --- a/master/text.html +++ b/master/text.html @@ -4754,17 +4754,17 @@ index to a UTF-16 code unit or a number This is for consistency with DOM Level 2 Core, where methods on the <a>CharacterData</a> interface use UTF-16 code units as indexes and counts within the character data. Thus for example, if the text content of a <a>'text'</a> element is a single non-BMP character, such as U+10000, then invoking <a>SVGTextContentElement::getNumberOfChars</a> on that element will return 2 since there are two UTF-16 code units (the surrogate pair) used to represent that one character. </p> -<pre class="idl">interface <b>SVGTextContentElement</b> : <a>SVGGraphicsElement</a> { +<pre class="idl">interface <b>SVGTextContentElement</b> : <a>SVGGeometryElement</a> { // lengthAdjust Types const unsigned short <a href="text.html#__svg__SVGTextContentElement__LENGTHADJUST_UNKNOWN">LENGTHADJUST_UNKNOWN</a> = 0; const unsigned short <a href="text.html#__svg__SVGTextContentElement__LENGTHADJUST_SPACING">LENGTHADJUST_SPACING</a> = 1; const unsigned short <a href="text.html#__svg__SVGTextContentElement__LENGTHADJUST_SPACINGANDGLYPHS">LENGTHADJUST_SPACINGANDGLYPHS</a> = 2; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedLength">SVGAnimatedLength</a> <a href="text.html#__svg__SVGTextContentElement__textLength">textLength</a>; readonly attribute <a class="idlinterface" href="types.html#InterfaceSVGAnimatedEnumeration">SVGAnimatedEnumeration</a> <a href="text.html#__svg__SVGTextContentElement__lengthAdjust">lengthAdjust</a>; diff --git a/master/types.html b/master/types.html --- a/master/types.html +++ b/master/types.html @@ -4485,16 +4485,83 @@ property.</p> is to directly render graphics into a group.</p> <pre class="idl">interface <b>SVGGraphicsElement</b> : <a>SVGTransformableElement</a> { }; <a>SVGGraphicsElement</a> implements <a>SVGTests</a>;</pre> +<div class="ready-for-wg-review"> +<h3 id="InterfaceSVGGeometryElement">Interface SVGGeometryElement</h3> + +<p>Interface <a>SVGGeometryElement</a> represents SVG elements whose rendering +is defined by geometry and which can be filled and stroked. This includes +paths, text and the basic shapes.</p> + +<pre class="idl">interface <b>SVGGeometryElement</b> : <a>SVGGraphicsElement</a> { + bool isPointInFill(<a>SVGPoint</a> point); + bool isPointInStroke(<a>SVGPoint</a> point); +};</pre> + +<dl class="interface"> + <dt class="operations-header">Operations:</dt> + <dd> + <dl class="attributes"> + <dt id="__svg__SVGGeometryElement__isPointInFill" class="operation first-child">bool <b>isPointInFill</b>(<a>SVGPoint</a> point)</dt> + <dd class="operation"> + Returns whether the specified point is within the fill of the element. + Normal hit testing rules apply; the value of the <a>'pointer-events'</a> + property on the element determines whether a point is considered to be + within the fill. + <dl class="operation"> + <dt class="parameters-header">Parameters</dt> + <dd> + <ol class="parameters"> + <li class="parameter first-child"> + <div><a>SVGPoint</a> <var>point</var></div> + <div>The point to check for intersection with the fill + of this element. The <a>SVGPoint</a> is interpreted as a + as a point in the user space of this element.</div> + </li> + </ol> + </dd> + <dt class="returns-header">Returns</dt> + <dd>true if the point is within the fill of this shape, + or false otherwise.</dd> + </dl> + </dd> + <dt id="__svg__SVGGeometryElement__isPointInStroke" class="operation">bool <b>isPointInStroke</b>(<a>SVGPoint</a> point)</dt> + <dd class="operation"> + Returns whether the specified point is within the stroke of the element. + Normal hit testing rules apply; the value of the <a>'pointer-events'</a> + property on the element determines whether a point is considered to be + within the stroke. + <dl class="operation"> + <dt class="parameters-header">Parameters</dt> + <dd> + <ol class="parameters"> + <li class="parameter first-child"> + <div><a>SVGPoint</a> <var>point</var></div> + <div>The point to check for intersection with the stroke + of this element. The <a>SVGPoint</a> is interpreted as a + as a point in the user space of this element.</div> + </li> + </ol> + </dd> + <dt class="returns-header">Returns</dt> + <dd>true if the point is within the stroke of this shape, + or false otherwise.</dd> + </dl> + </dd> + </dl> + </dd> +</dl> +</div> + <h3 id="InterfaceSVGDefinitionElement">Interface SVGDefinitionElement</h3> <p>Interface <a>SVGGraphicsElement</a> represents SVG elements whose primary purpose is to define a reusable resource.</p> <pre class="idl">interface <b>SVGDefinitionElement</b> : <a>SVGElement</a> { };
Received on Friday, 14 September 2012 16:18:06 UTC