diff --git a/master/changes.html b/master/changes.html index 88ca3d79..581eee0f 100644 --- a/master/changes.html +++ b/master/changes.html @@ -531,6 +531,9 @@

Coordinate Systems, Transformations and Units chapter

  • Define SVG sizing in CSS contexts with reference to the CSS Default Sizing Algorithm.
  • Clarify that percentages are relative to the width and height of the specified viewBox.
  • Mark unimplemented 'vector-effect' options at-risk.
  • +
    +
  • Adapt 'vector-effect' host coordinate space definition to actual implemented behavior. Remove screen and viewport values.
  • +
  • Change bounding box algorithm to include the effect of overflow and clip properties when the "clipped" flag is set.
  • diff --git a/master/coords.html b/master/coords.html index a26387e0..90241038 100644 --- a/master/coords.html +++ b/master/coords.html @@ -52,7 +52,17 @@

    Introduction

    to the width and height of the nearest ancestral SVG viewport. Hence, nesting SVG viewports provides an opportunity to redefine the meaning of percentage units and provide a new reference rectangle for "fitting" a graphic relative -to a particular rectangular area.

    +to a particular rectangular area. The + +furthest ancestral SVG viewport is the top most root SVG viewport with +out leaving the SVG context. An ancestor SVG viewport might not be +independent of the DOM tree order. E.g for 'linearGradient', +'radialGradient', 'pattern', 'mask element', 'clipPath' +'symbol' or 'use' elements.

    + +

    An SVG +context is a document fragment where all elements within the fragment +have the SVGElement as prototype.

    The width, height and origin of SVG viewports is established by a negotiation process between the SVG document fragment generating the SVG viewport, and the @@ -1442,7 +1452,7 @@

    Vector effects

    Value: - none | [ non-scaling-stroke | non-scaling-size | non-rotation | fixed-position ]+ [ viewport | screen ]? + none | non-scaling-stroke | non-scaling-size | non-rotation | fixed-position Initial: @@ -1485,7 +1495,7 @@

    Vector effects

    Specifies special user coordinate system toward this element and its descendant by constrained transformations with the following characteristics. The scale of the user coordinate system do not - change in spite of change of CTMs from a host coordinate space. + change in spite of change of CTMs from a host coordinate space. However, it does not specify the suppression of rotation and skew. Also, it does not specify the fixation of placement of user coordinate system. Since non-scaling-size suppresses scaling of user coordinate system, @@ -1495,7 +1505,7 @@

    Vector effects

    Specifies special user coordinate system toward this element and its descendant by constrained transformations with the following characteristics. The rotation and skew of the user coordinate system - is suppressd in spite of change of CTMs from a host coordinate space. + is suppressd in spite of change of CTMs from a host coordinate space. However, it does not specify the suppression of scaling. Also, it does not specify the fixation of placement of user coordinate system. The transformation formula and the example behavior are indicated to the @@ -1504,7 +1514,7 @@

    Vector effects

    Specifies special user coordinate system toward this element and its descendant by constrained transformations with the following characteristics. The placement of user coordinate system is fixed - in spite of change of CTMs from a host coordinate space. However, + in spite of change of CTMs from a host coordinate space. However, it does not specify the suppression of rotation, skew and scaling. When the element that has fixed-position effect and also has 'transform' property, that property is consumed for this effect. The shift components @@ -1517,37 +1527,10 @@

    Vector effects

    These values can be enumerated. Thereby, the effect which has these characteristics simultaneously can be specified.

    -

    The following two values assists the above-mentioned values. They show the -host coordinate space of constrained transformations. Especially it has -effective for the element belonging to nested viewport coordinate system such -as nested contents or nested 'svg' elements. An initial value in case -it is not specified is viewport.

    +

    The host coordinate space for 'vector-effect' is the viewport +coordinate system of the furthest ancestral SVG viewport.

    -
    -
    viewport
    -
    Specifies immediate viewport coordinate system as the host - coordinate space. When that element belongs to nested - viewport coordinate system, vector effects are applied toward - viewport coordinate system to which that element belongs directly. - That is, that vector effect is not effective for change of CTM on - ancestral viewport coordinate system.
    -
    screen
    -
    It specifies the coordinate system of content which under the immediate - control of user agent. So to speak, it is "scrren" which user agent - has. ("screen coordinate space" in SVGT1.2) Even if that element belongs to - nested viewport coordinate system, that vector effect is always effective for - change of CTM of the any hierarchy. If the SVG implementation is part - of a user agent which supports CSS compatible px units, it is a - coordinate system on CSS pixel of rootmost content. Generally, the pixel (or - dot) of a device and pixel of CSS are not always equal by influences of the - zoom function which user agent itself has, and variation of dpi. (see - resolution - [CSS Values and Units Module Level 3]) - Accordingly, this value does not specify constrained transformations toward - the such a device coordinate system.
    -
    - -

    Note: Future versions of SVG may allow ways to specify the device coordinate system.

    +

    Note: Future versions of SVG may allow ways to specify the device coordinate system.

    Computing the vector effects

    diff --git a/master/definitions.xml b/master/definitions.xml index 1d2bf042..8c7b92ee 100644 --- a/master/definitions.xml +++ b/master/definitions.xml @@ -940,6 +940,8 @@ + + diff --git a/master/painting.html b/master/painting.html index f26ea887..3e19ace9 100644 --- a/master/painting.html +++ b/master/painting.html @@ -2235,8 +2235,8 @@

    Vector effects

    outline of the shape's path in current user coordinate system and filling that outline with the stroke paint (color or gradient). With the non-scaling-stroke vector effect, stroke outline shall be calculated in the "host" coordinate space instead of user coordinate system. - More precisely: a user agent establishes a host coordinate space which in SVG Tiny 1.2 is - always the same as "screen coordinate space". The stroke outline is calculated in the + More precisely: the viewport coordinate system of the furthest ancestral SVG viewport. + The stroke outline is calculated in the following manner: first, the shape's path is transformed into the host coordinate space. Stroke outline is calculated in the host coordinate space. The resulting outline is transformed back to the user coordinate system.