<div dir="auto"><div>Thanks, this is very reasonable. For the less mathematically fluent, it may still be helpful to add an explanation, perhaps in the tooltips.<div dir="auto"><br></div><div dir="auto">If there aren't any more suggestions with regards to Vince's proposal for a corrected function definition, I could submit the function as a standards comment.</div><div dir="auto"><br></div><div dir="auto">Andreas</div><br><div class="gmail_extra"><br><div class="gmail_quote">On Oct 2, 2017 1:16 AM, "Richard F. Puk" <<a href="mailto:puk@igraphics.com">puk@igraphics.com</a>> wrote:<br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div lang="EN-US" link="blue" vlink="purple"><div class="m_-6693326458691273489WordSection1"><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Hi –<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">As editor of these standards, we used normal mathematical notation. We consider infinity as a number that cannot be expressed. This is why there is always an indication of an open interval  whenever infinity (+ or -) is at one end of the interval.<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="m_-6693326458691273489MsoListParagraph" style="margin-left:22.5pt"><u></u><span style="font-size:11.0pt;font-family:Wingdings;color:#1f497d"><span>n<span style="font:7.0pt "Times New Roman"">  </span></span></span><u></u><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">Dick<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">/*****************************<wbr>*************<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">| Richard F. Puk, Ph.D., President<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">| Intelligraphics Incorporated<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">| <a href="https://maps.google.com/?q=7644+Cortina+Court+%7C+Carlsbad,+CA%C2%A0+92009&entry=gmail&source=g">7644 Cortina Court</a><u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><a href="https://maps.google.com/?q=7644+Cortina+Court+%7C+Carlsbad,+CA%C2%A0+92009&entry=gmail&source=g">| Carlsbad, CA  92009</a>-8206<u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">| Tel: <a href="tel:(760)%20753-9027" value="+17607539027" target="_blank">+1-760-753-9027</a>  Mobile:  <a href="tel:(760)%20809-9027" value="+17608099027" target="_blank">+1-760-809-9027</a><u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">| Email:  <a href="mailto:puk@igraphics.com" target="_blank"><span style="color:blue">puk@igraphics.com</span></a><u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d">\*****************************<wbr>************* <u></u><u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></p><p class="MsoNormal"><a name="m_-6693326458691273489__MailEndCompose"><span style="font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1f497d"><u></u> <u></u></span></a></p><p class="MsoNormal"><b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif"">From:</span></b><span style="font-size:10.0pt;font-family:"Tahoma","sans-serif""> x3d-public [mailto:<a href="mailto:x3d-public-bounces@web3d.org" target="_blank">x3d-public-bounces@<wbr>web3d.org</a>] <b>On Behalf Of </b>Andreas Plesch<br><b>Sent:</b> Saturday, September 30, 2017 10:47 PM<br><b>To:</b> <a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a><br><b>Cc:</b> X3D Graphics public mailing list<br><b>Subject:</b> Re: [x3d-public] Sequencer interval definition<u></u><u></u></span></p><div class="elided-text"><p class="MsoNormal"><u></u> <u></u></p><div><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal"><u></u> <u></u></p><div><p class="MsoNormal">On Sep 30, 2017 7:49 PM, "<a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a>" <<a href="mailto:vmarchetti@kshell.com" target="_blank">vmarchetti@kshell.com</a>> wrote:<u></u><u></u></p><div><p class="MsoNormal"><br>> On Sep 4, 2017, at 11:45 AM, Andreas Plesch <<a href="mailto:andreasplesch@gmail.com" target="_blank">andreasplesch@gmail.com</a>> wrote:<br>><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">> Resending this without html formatting to ensure proper transmission:<br>><br>> 30.2.4 defines how sequencer values are assigned to key intervals:<br>><br>> <a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/utils.html#SequencingEvents" target="_blank">http://www.web3d.org/<wbr>documents/specifications/<wbr>19775-1/V3.3/Part01/<wbr>components/utils.html#<wbr>SequencingEvents</a><br>><br>> (−infinity, t0), [t0, t1), [t1, t2), ... , [tn-1, +infinity)<br>><br>> are the intervals.<br>><br>> The square bracket [ seems to indicate that the limiting value does not belong to the interval. Is that the case ?<u></u><u></u></p></div><div><p class="MsoNormal">I'm more used to the square bracket indicating a closed boundary, so that the for the interval denoted [a,b) ; x is in the interval a <= x < b<br>so a is an element of the interval but b is not. Take the view that neither +infinity nor -infinity is a number; so (-infinity,a) is just shorthand for the set x < a, while [a,+infinity) is x >= a.<u></u><u></u></p></div></div></div></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">VRML97 seems to be when the bracket for the interval was introduced:<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal"><a href="http://tecfa.unige.ch/guides/vrml/vrml97/spec/part1/concepts.html#4.6.8" target="_blank">http://tecfa.unige.ch/guides/<wbr>vrml/vrml97/spec/part1/<wbr>concepts.html#4.6.8</a><u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">But it is not accompanied by an explanation. For interpolators it may not matter if the limit is included in the interval since the function is continuous.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">For sequencers, the function produces different values depending on from which side an interval limit is approached.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">I guess it is time to look up how various browsers behave at sequencer interval limits.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><p class="MsoNormal"><br><br>><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">> For example, in the second interval [t0, t1) t0 does not belong to the interval but t1 does.<br>> I have seen other notations where this interval would be described as ]t0, t1] which I would offer as a suggestion for an improvement.<br>><br>> The next question is about the piecewise function definition:<br>><br>> f(t) = v_n, if t_n <= t < t_(n-1)<br>><br>> Given that the keys t_i are given in a monotonically non-decreasing order, t_n is always larger (or equal to) than t_(n-1). Therefore, a t larger than t_n can never be smaller than t_(n-1). But this is the condition described in the function for value v_n. There is no possible t which can fulfill this condition.<br>> Presumably this condition was designed as:<br>><br>> f(t) = v_n, if t_n >= t > t_(n-1)<br>><br>> If this is the case I can submit a spec. comment but I very much would appreciate additional eyes on that since it seems like a rather fundamental oversight. Did I overlook something ?<br>><u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">My set of eyes agrees with yours that the formula form in the v 3.3 version of section 30.2.4 is incorrect, I would propose a corrected version:<br><br>f(t)    =  v_i, if t_{i-1}   ≤ t < t_{i}  for  1 <= i < n-1<br>        = v_0, if t < t_0,<br>        = v_{n−1}, if t ≥ t_{n−1}<u></u><u></u></p></div></blockquote></div></div></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Looks good to me if [ is meant to include the limit in the interval.<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><p class="MsoNormal">Andreas<u></u><u></u></p></div><div><p class="MsoNormal"><u></u> <u></u></p></div><div><div><div><blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in"><div><p class="MsoNormal" style="margin-bottom:12.0pt"><br><br><br><u></u><u></u></p></div><div><p class="MsoNormal">> The Interpolator component spec. may provide additional insight:<br>><br>> <a href="http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/components/interp.html#Linearinterpolation" target="_blank">http://www.web3d.org/<wbr>documents/specifications/<wbr>19775-1/V3.3/Part01/<wbr>components/interp.html#<wbr>Linearinterpolation</a><br>><br>> Here the equivalent piecewise function definition is:<br>><br>> f(t) = linterp(t, v_i, v_(i+1)),    if t_i <= t <= t_(i+1),<br>><br>> Note that the interval condition here is between t_i and t_(i+1) and not t_(i-1). So this is correct. But why change for Sequencer to t_(n-1) ? Perhaps there is a reason ?<br>><br>> Also note that i is used rather than n which is also more correct since n is reserved for the fixed, total number of keys, whereas i is the variable index depending on the whatever time t is considered.<br>><br>> -Andreas<br>><br>> --<br>> Andreas Plesch<br>> Waltham, MA 02453<u></u><u></u></p></div><div><p class="MsoNormal" style="margin-bottom:12.0pt">> ______________________________<wbr>_________________<br>> x3d-public mailing list<br>> <a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/<wbr>listinfo/x3d-public_web3d.org</a><u></u><u></u></p></div></blockquote></div><p class="MsoNormal"><u></u> <u></u></p></div></div></div></div></div></div></blockquote></div><br></div></div></div>