[ttml2] add tts:fontShear property (issue 363)
authorGlenn Adams <glenn@skynav.com>
Wed, 07 Jan 2015 18:44:07 -0700
changeset 813 1e2f0dc58b8d
parent 812 b1142b8d59b2
child 814 37dfdfdb9a18
[ttml2] add tts:fontShear property (issue 363)
ttml2/spec/rnc/ttml2-datatypes.rnc
ttml2/spec/rnc/ttml2-styling-attribs.rnc
ttml2/spec/ttml2-changes.html
ttml2/spec/ttml2.xml
ttml2/spec/xsd/ttml2-datatypes.xsd
ttml2/spec/xsd/ttml2-styling-attribs.xsd
--- a/ttml2/spec/rnc/ttml2-datatypes.rnc	Mon Jan 05 21:21:55 2015 -0700
+++ b/ttml2/spec/rnc/ttml2-datatypes.rnc	Wed Jan 07 18:44:07 2015 -0700
@@ -120,6 +120,9 @@
   "none" |
   "normal"
 
+TTAF.FontShear.datatype =
+  string
+
 TTAF.FontSize.datatype =
   string
 
--- a/ttml2/spec/rnc/ttml2-styling-attribs.rnc	Mon Jan 05 21:21:55 2015 -0700
+++ b/ttml2/spec/rnc/ttml2-styling-attribs.rnc	Wed Jan 07 18:44:07 2015 -0700
@@ -34,6 +34,8 @@
   = attribute tts:fontKerning { TTAF.FontKerning.datatype }?
 TTAF.fontSize.attrib
   = attribute tts:fontSize { TTAF.FontSize.datatype }?
+TTAF.fontShear.attrib
+  = attribute tts:fontShear { TTAF.FontShear.datatype }?
 TTAF.fontStyle.attrib
   = attribute tts:fontStyle { TTAF.FontStyle.datatype }?
 TTAF.fontVariantPosition.attrib
@@ -109,6 +111,7 @@
   TTAF.extent.attrib,
   TTAF.fontFamily.attrib,
   TTAF.fontKerning.attrib,
+  TTAF.fontShear.attrib,
   TTAF.fontSize.attrib,
   TTAF.fontStyle.attrib,
   TTAF.fontVariantPosition.attrib,
--- a/ttml2/spec/ttml2-changes.html	Mon Jan 05 21:21:55 2015 -0700
+++ b/ttml2/spec/ttml2-changes.html	Wed Jan 07 18:44:07 2015 -0700
@@ -90,6 +90,7 @@
   'tts:border',
   'tts:fontKerning,
   'tts:fontSelectionStrategy',
+  'tts:fontShear,
   'tts:fontVariantPosition',
   'tts:height,
   'tts:letterSpacing,
@@ -238,6 +239,8 @@
 
 * In 10.2, add 'tts:fontSelectionStrategy styling attribute.
 
+* In 10.2, add 'tts:fontShear styling attribute.
+
 * In 10.2, add 'tts:fontVariantPosition' attribute.
 
 * In 10.2, add 'tts:height styling attribute.
@@ -275,30 +278,30 @@
 * In 10.2.12, add 'p' element to enumeration  of element types to which
   tts:fontFamily applies.
 
-* In 10.2.14, add 'p' element to enumeration  of element types to which
+* In 10.2.16, add 'p' element to enumeration  of element types to which
   tts:fontSize applies.
 
-* In 10.2.15, add 'p' element to enumeration  of element types to which
+* In 10.2.17, add 'p' element to enumeration  of element types to which
   tts:fontStyle applies.
 
-* In 10.2.17, add 'p' element to enumeration  of element types to which
+* In 10.2.19, add 'p' element to enumeration  of element types to which
   tts:fontWeight applies.
 
-* In 10.2.19, specify algorithm for resolving the 'normal' value of
+* In 10.2.22, specify algorithm for resolving the 'normal' value of
   tts:lineHeight that takes into account the use of per-font-metrics for
   ascent, descent, and line gap, using 125% of font size as a fall back.
 
-* In 10.2.20, add content elements to enumeration of element types to which
+* In 10.2.23, add content elements to enumeration of element types to which
   tts:opacity applies.
 
-* In 10.2.21, add 'div' and 'p' elements to enumeration of element types to
+* In 10.2.24, add 'div' and 'p' elements to enumeration of element types to
   which tts:origin applies. Define semantics that causes the use of tts:origin
   to generate an implied inline region.
 
-* In 10.2.23, add content elements to enumeration of element types to which
+* In 10.2.26, add content elements to enumeration of element types to which
   tts:padding applies.
 
-* In 10.2.30, add 'span' to enumeration of element types to which
+* In 10.2.33, add 'span' to enumeration of element types to which
   tts:textAlign applies.
 
 * In 10.3, add &lt;border-color&gt;, &lt;border-style&gt;, and &lt;border-width&gt;
--- a/ttml2/spec/ttml2.xml	Mon Jan 05 21:21:55 2015 -0700
+++ b/ttml2/spec/ttml2.xml	Wed Jan 07 18:44:07 2015 -0700
@@ -2990,6 +2990,7 @@
 <loc href="#style-attribute-fontFamily">tts:fontFamily</loc>,
 <loc href="#style-attribute-fontKerning">tts:fontKerning</loc>,
 <loc href="#style-attribute-fontSelectionStrategy">tts:fontSelectionStrategy</loc>,
+<loc href="#style-attribute-fontShear">tts:fontShear</loc>,
 <loc href="#style-attribute-fontSize">tts:fontSize</loc>,
 <loc href="#style-attribute-fontStyle">tts:fontStyle</loc>,
 <loc href="#style-attribute-fontVariantPosition">tts:fontVariantPosition</loc>,
@@ -7210,6 +7211,7 @@
 <item><p><specref ref="style-attribute-extent"/></p></item>
 <item><p><specref ref="style-attribute-fontFamily"/></p></item>
 <item><p><specref ref="style-attribute-fontKerning"/></p></item>
+<item><p><specref ref="style-attribute-fontShear"/></p></item>
 <item><p><specref ref="style-attribute-fontSelectionStrategy"/></p></item>
 <item><p><specref ref="style-attribute-fontSize"/></p></item>
 <item><p><specref ref="style-attribute-fontStyle"/></p></item>
@@ -8458,7 +8460,6 @@
 &sect; 7.9.2.</p>
 </note>
 </div3>
-
 <div3 id="style-attribute-fontKerning">
 <head>tts:fontKerning</head>
 <p>The <att>tts:fontKerning</att> attribute is used to specify a style property that
@@ -8539,6 +8540,77 @@
 character to glyph mapping.</edtext>
 </ednote>
 </div3>
+
+<div3 id="style-attribute-fontShear">
+<head>tts:fontShear</head>
+<p>The <att>tts:fontShear</att> attribute is used to specify a style property that
+determines whether and how a shear transformation is applied to glyph areas.</p>
+<p>This attribute may be specified by any element type
+that permits use of attributes in the TT Style Namespace; however, this attribute applies
+as a style property only to those element types indicated in the following table.</p>
+<table id="style-property-details-fontShear" role="common">
+<col width="25%"/>
+<col/>
+<tbody>
+<tr>
+<td><emph>Values:</emph></td>
+<td>
+<loc href="#style-value-length">&lt;percentage&gt;</loc>
+</td>
+</tr>
+<tr>
+<td><emph>Initial:</emph></td>
+<td><code>0%</code></td>
+</tr>
+<tr>
+<td><emph>Applies to:</emph></td>
+<td>
+<loc href="#content-vocabulary-span"><el>span</el></loc>
+</td>
+</tr>
+<tr>
+<td><emph>Inherited:</emph></td>
+<td>yes</td>
+</tr>
+<tr>
+<td><emph>Percentages:</emph></td>
+<td>see prose</td>
+</tr>
+<tr>
+<td><emph>Animatable:</emph></td>
+<td>discrete, continuous</td>
+</tr>
+</tbody>
+</table>
+<p>If the value of this attribute is <code>0%</code>, then no shear transformation is applied; if the value is <code>100%</code>, then a 2D shear transformation
+of 90 degrees is applied in the axis associated with the inline progression direction; if the value is <code>-100%</code>, then a shear transformation
+of -90 degrees is applied. If the absolute value of the specified percentage is greater than 100%, then it must be interpreted as if 100% were specified with
+the appropriate sign.</p>
+<p>If the inline progression direction corresponds to the X axis, then the 2D shear transformation is described by the following matrix:</p>
+<eg xml:space="preserve">
+| 1 <emph>a</emph> 0 |
+| 0 1 0 |
+| 0 0 1 |
+</eg>
+<p>where <emph>a</emph> is equal to the tangent of the shear angle.</p>
+<p>If the inline progression direction corresponds to the Y axis, then the 2D shear transformation is described by the following matrix:</p>
+<eg xml:space="preserve">
+| 1 0 0 |
+| <emph>a</emph> 1 0 |
+| 0 0 1 |
+</eg>
+<p>For the purpose of determining applicability of this style property,
+each character child of a <el>p</el> element is considered to be enclosed in an anonymous
+span.</p>
+<p>The <att>tts:fontShear</att> style is illustrated by the following
+example.</p>
+<ednote>
+<name>Font Shear Example</name>
+<date>2015-01-07</date>
+<edtext>Insert example fragment and image of tts:fontShear.</edtext>
+</ednote>
+</div3>
+
 <div3 id="style-attribute-fontSize">
 <head>tts:fontSize</head>
 <p>The <att>tts:fontSize</att> attribute is used to specify a style property
@@ -11581,6 +11653,8 @@
 <item><p><specref ref="style-value-length"/></p></item>
 <item><p><specref ref="style-value-measure"/></p></item>
 <item><p><specref ref="style-value-namedColor"/></p></item>
+<item><p><specref ref="style-value-number"/></p></item>
+<item><p><specref ref="style-value-percentage"/></p></item>
 <item><p><specref ref="style-value-position"/></p></item>
 </ulist>
 <p>In the syntax representations defined in this section, no
@@ -12117,29 +12191,10 @@
 <eg xml:space="preserve">
 &lt;length&gt;
   : scalar
-  | percentage
+  | <loc href="#style-value-percentage">&lt;percentage&gt;</loc>
 
 scalar
-  : number units
-
-percentage
-  : number "%"
-
-sign
-  : "+" | "-"
-
-number
-  : sign? non-negative-number
-
-non-negative-number
-  : non-negative-integer
-  | non-negative-real
-
-non-negative-integer
-  : <loc href="#style-value-digit">&lt;digit&gt;</loc>+
-
-non-negative-real
-  : <loc href="#style-value-digit">&lt;digit&gt;</loc>* "." <loc href="#style-value-digit">&lt;digit&gt;</loc>+
+  : <loc href="#style-value-percentage">&lt;number&gt;</loc> units
 
 units
   : "px"
@@ -12180,7 +12235,6 @@
 the length <code>25vmin</code> is interpreted as the minimum of 25% of the width and
 25% of the height of the <loc href="#terms-root-container-region">root container region</loc>.</p>
 </div3>
-
 <div3 id="style-value-measure">
 <head>&lt;measure&gt;</head>
 <p>A &lt;measure&gt; value expresses a distance used to measure an allocation
@@ -12264,7 +12318,6 @@
 </gitem>
 </glist>
 </div3>
-
 <div3 id="style-value-namedColor">
 <head>&lt;namedColor&gt;</head>
 <p>A &lt;namedColor&gt; is used to express an RGBA color with a convenient name, and where the applicable color space is
@@ -12306,6 +12359,55 @@
 subset of the set of named colors specified by <bibref ref="svg11"/>, &sect; 4.2.</p>
 </note>
 </div3>
+<div3 id="style-value-number">
+<head>&lt;number&gt;</head>
+<p>An &lt;number&gt; expression is used to express an arbitrary, signed integer or real valued number.</p>
+<table id="number-style-expression-syntax" role="syntax">
+<caption>Syntax Representation &ndash; &lt;number&gt;</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+&lt;number&gt;
+  : sign? non-negative-number
+
+sign
+  : "+" | "-"
+
+number
+
+non-negative-number
+  : non-negative-integer
+  | non-negative-real
+
+non-negative-integer
+  : <loc href="#style-value-digit">&lt;digit&gt;</loc>+
+
+non-negative-real
+  : <loc href="#style-value-digit">&lt;digit&gt;</loc>* "." <loc href="#style-value-digit">&lt;digit&gt;</loc>+
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div3>
+<div3 id="style-value-percentage">
+<head>&lt;percentage&gt;</head>
+<p>An &lt;percentage&gt; expression is used to express an arbitrary, signed integral or real valued percentage.</p>
+<table id="percentage-style-expression-syntax" role="syntax">
+<caption>Syntax Representation &ndash; &lt;percentage&gt;</caption>
+<tbody>
+<tr>
+<td>
+<eg xml:space="preserve">
+&lt;percentage&gt;
+  : <loc href="#style-value-number">&lt;number&gt;</loc> "%"
+</eg>
+</td>
+</tr>
+</tbody>
+</table>
+</div3>
 <div3 id="style-value-position">
 <head>&lt;position&gt;</head>
 <p>A &lt;position&gt; expression is used to indirectly determine the origin of an area or an image with respect to a reference area.</p>
--- a/ttml2/spec/xsd/ttml2-datatypes.xsd	Mon Jan 05 21:21:55 2015 -0700
+++ b/ttml2/spec/xsd/ttml2-datatypes.xsd	Wed Jan 07 18:44:07 2015 -0700
@@ -170,6 +170,12 @@
   <xs:simpleType name="fontRange">
     <xs:restriction base="xs:string"/>
   </xs:simpleType>
+  <xs:simpleType name="fontShear">
+    <xs:annotation>
+      <xs:documentation>percentage</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string"/>
+  </xs:simpleType>
   <xs:simpleType name="fontSize">
     <xs:annotation>
       <xs:documentation>length | length length</xs:documentation>
--- a/ttml2/spec/xsd/ttml2-styling-attribs.xsd	Mon Jan 05 21:21:55 2015 -0700
+++ b/ttml2/spec/xsd/ttml2-styling-attribs.xsd	Wed Jan 07 18:44:07 2015 -0700
@@ -17,6 +17,7 @@
   <xs:attribute name="extent" type="ttd:extent"/>
   <xs:attribute name="fontFamily" type="ttd:fontFamily"/>
   <xs:attribute name="fontKerning" type="ttd:fontKerning"/>
+  <xs:attribute name="fontShear" type="ttd:fontShear"/>
   <xs:attribute name="fontSize" type="ttd:fontSize"/>
   <xs:attribute name="fontStyle" type="ttd:fontStyle"/>
   <xs:attribute name="fontVariantPosition" type="ttd:fontVariantPosition"/>
@@ -58,6 +59,7 @@
     <xs:attribute ref="tts:extent"/>
     <xs:attribute ref="tts:fontFamily"/>
     <xs:attribute ref="tts:fontKerning"/>
+    <xs:attribute ref="tts:fontShear"/>
     <xs:attribute ref="tts:fontSize"/>
     <xs:attribute ref="tts:fontStyle"/>
     <xs:attribute ref="tts:fontVariantPosition"/>