<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:"Calibri Light";
        panose-1:2 15 3 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
h2
        {mso-style-priority:9;
        mso-style-link:"Heading 2 Char";
        margin-top:2.0pt;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:0in;
        page-break-after:avoid;
        font-size:13.0pt;
        font-family:"Calibri Light",sans-serif;
        color:#2F5496;
        font-weight:normal;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
span.Heading2Char
        {mso-style-name:"Heading 2 Char";
        mso-style-priority:9;
        mso-style-link:"Heading 2";
        font-family:"Calibri Light",sans-serif;
        color:#2F5496;}
span.proposed
        {mso-style-name:proposed;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1142431268;
        mso-list-type:hybrid;
        mso-list-template-ids:-422395004 -1 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
        {mso-level-start-at:0;
        mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;
        mso-fareast-font-family:"Times New Roman";
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style>
</head>
<body lang="EN-US" link="blue" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<p class="MsoNormal">Today Dick and I refined prose and reconciled multiple comments in Mantis 1093 and 1185.</p>
<p class="MsoNormal"><br>
We think that the equations for X3DSequencer computations are now clearer, especially when several keys are identical (which is allowed in a monotonically non-decreasing sequence).  We thank Yves Piguet, Roy Walmsley and Andreas Plesch for fundamental contributions.</p>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">30.2.4 Sequencing single field (SF) events - Discrete value sequencing function
</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">https://www.web3d.org/member-only/mantis/view.php?id=1185</li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">30.2.4 Sequencing Single Field (SF) events - Notation in sequencing function</li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">https://www.web3d.org/member-only/mantis/view.php?id=1093</li></ul>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Results online as follows.  All comments welcome.<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<ul style="margin-top:0in" type="disc">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">30.2.4 Sequencing Single Field (SF) events<o:p></o:p></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l0 level1 lfo1">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-CD1/Part01/components/eventUtilities.html#SequencingEvents<o:p></o:p></li></ul>
<div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 1.0pt 0in">
<p class="MsoNormal" style="border:none;padding:0in"><o:p> </o:p></p>
</div>
<div>
<h2>30.2.4 Sequencing Single Field (SF) events <span style="font-size:18.0pt"><o:p></o:p></span></h2>
<p>Sequencer nodes allow content authors to generate a specific sequence of discrete events over the course of a TimeSensor's output. They are derived from the abstract node type
<i>X3DSequencerNode</i> and thus share the signature fields of <i>set_fraction</i> (SFFloat [in]) and
<i>key</i> (MFFloat [in,out]). </p>
<p>The <i>set_fraction</i> inputOnly field receives an SFFloat event and causes the sequencing function to evaluate, resulting in a
<i>value_changed</i> output event with the same timestamp as the <i>set_fraction</i> event. The sequencer node sends only one
<i>value_changed</i> output event per <i>key</i>[i] interval. <span class="proposed">
<span style="background:yellow;mso-highlight:yellow">Such sequenced values are not interpolated.</span></span> The usage of the
<i>keyValue</i> and output fields are dependent on the type of the Sequencer. </p>
<p>BooleanSequencer and IntegerSequencer output a single-value field to <i>value_changed</i>. Each value in the
<i>keyValue</i> field corresponds in order to the parameter value in the <i>key</i> field. Results are undefined if the number of values in the
<i>key</i> field of a sequencer is not the same as the number of values in the <i>
keyValue</i> field. </p>
<p>The specified X3D sequencer nodes are designed for discrete events along a timeline. Each of these nodes defines a piecewise-linear function,
<i>f(t)</i>, on the interval ( <i>−infinity, +infinity)</i>. The piecewise-linear function is defined by
<i>n</i> values of <i>t</i>, called <i>key</i>, and the <i>n</i> corresponding values of
<i>f(t)</i>, called <i>keyValue</i>. The keys shall be monotonically non-decreasing, otherwise the results are undefined. The keys are not restricted to any interval.
</p>
<p>Each of these nodes evaluates <i>f(t)</i> given any value of <i>t</i> (via the
<i>fraction</i> field) as follows: Let the <i>n</i> keys <i>t<sub>0</sub>, t<sub>1</sub>, t<sub>2</sub>, ..., t<sub>n-1</sub></i> partition the domain (
<i>-infinity, +infinity</i>) into the <i>n+</i>1 subintervals given by (− <i>infinity</i>,
<i>t<sub>0</sub>), [t<sub>0</sub>, t<sub>1</sub>), [t<sub>1</sub>, t<sub>2</sub>), ..., [t<sub>n-1</sub>, +infinity)</i>. Also, let the
<i>n</i> values <i>v<sub>0</sub>, v<sub>1</sub>, v<sub>2</sub>, ..., v<sub>n-1</sub></i> be the values of
<i>f(t)</i> at the associated key values. The discrete value sequencing function,
<i>f(t)</i>, is defined to be:</p>
<div>
<p><s>    <i>f(t)</i> = <i>v<sub>n</sub>, if t<sub>n</sub> ≤ t < t<sub>n-1</sub></i><br>
         = <i>v<sub>0</sub></i>, if <i>t ≤ t<sub>0</sub></i>,<br>
         = <i>v<sub>n−1</sub></i>, if <i>t ≥ t<sub>n−1</sub></i><o:p></o:p></s></p>
</div>
<div>
<p>    <i><span style="background:yellow;mso-highlight:yellow">f(t)</span></i><span style="background:yellow;mso-highlight:yellow"> =
<i>v<sub>i</sub></i> ,    if t<sub>i</sub> ≤ t < t<sub>n-1</sub> for 0 ≤ i < n-1;<br>
         = <i>v<sub>i</sub></i> ,     if t = t<sub>i</sub> = t<sub>i+1</sub>;<br>
         = <i>v<sub>0</sub></i> ,    if <i>t ≤ t<sub>0</sub></i>;<br>
         = <i>v<sub>n−1</sub></i> , if <i>t ≥ t<sub>n−1</sub></i><o:p></o:p></span></p>
<div style="mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 1.0pt 0in">
<p style="border:none;padding:0in"><span style="background:yellow;mso-highlight:yellow">Note that if more than one key/keyValue pairs are provided for the same key, only the first defined value for keyValue is used.</span>
</p>
</div>
</div>
</div>
<p class="MsoNormal">all the best, Don<br>
<span style="font-size:10.0pt;font-family:"Courier New"">-- <br>
Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu<br>
Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<br>
X3D graphics, virtual worlds, navy robotics <a href="http://faculty.nps.edu/brutzman">
http://faculty.nps.edu/brutzman</a></span><o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>