<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:"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;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.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;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>I will try taking out my code to remove set_ and _changed and see what happens.  Perhaps I can patch my XML.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:michalis.kambi@gmail.com">Michalis Kamburelis</a><br><b>Sent: </b>Monday, April 24, 2017 5:03 AM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Cc: </b><a href="mailto:andreasplesch@gmail.com">Andreas Plesch</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] [...] set_Value prefix and value_changed suffix,potential v4 issue</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>2017-04-24 5:40 GMT+02:00 Don Brutzman <brutzman@nps.edu>:</p><p class=MsoNormal>> So for example, am not finding any specification prose that would permit</p><p class=MsoNormal>> routing from a TimeSensor.fraction (it is defined as</p><p class=MsoNormal>> TimeSensor.fraction_changed) or into a PositionInterpolator.fraction (it is</p><p class=MsoNormal>> defined as PositionInterpolator.set_fraction).</p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I always understood the X3D specification (the</p><p class=MsoNormal>http://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#FieldSemantics</p><p class=MsoNormal>section) to mean that "if you want to refer to the input event of the</p><p class=MsoNormal>xxx inputOutput, you MUST write it set_xxx". (And, analogously, you</p><p class=MsoNormal>MUST write "xxx_changed" to refer to the output event.)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I guess it comes from the VRML times, when the concept of "fields" and</p><p class=MsoNormal>"events" felt more separated in the specification. We had "exposed</p><p class=MsoNormal>field" that I understood as equivalent to a sum of 1 field + 2 events.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>The specification says</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>   """</p><p class=MsoNormal>   An inputOutput field named zzz can be referred to as 'set_zzz' and</p><p class=MsoNormal>treated as an inputOnly, and can be referred to as 'zzz_changed' and</p><p class=MsoNormal>treated as an outputOnly field.</p><p class=MsoNormal>   """</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I understood the "referred to as 'set_zzz' and treated as an</p><p class=MsoNormal>inputOnly" as a requirement: you have to refer to it as 'set_zzz', in</p><p class=MsoNormal>order to treat it as an inputOnly.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Consequently, view3dscene does not allow</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  ROUTE MyTimeSensor.fraction TO MyPositionInterpolator.fraction</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>You must use</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  ROUTE MyTimeSensor.fraction_changed TO MyPositionInterpolator.set_fraction</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Attaching the smallest testcase possible:) If any other X3D browser</p><p class=MsoNormal>allows the 1st ROUTE above (just "MyTimeSensor.fraction"), or if the</p><p class=MsoNormal>specification allows it, I would like to know about it, so that I can</p><p class=MsoNormal>fix view3dscene.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Out of curiosity, I looked at what VRML 97 specification says about it:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>1. VRML 97 spec says basically the same thing as X3D spec (</p><p class=MsoNormal>http://www.web3d.org/documents/specifications/14772/V2.0/part1/concepts.html#4.7</p><p class=MsoNormal>):</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  """An exposedField named zzz can be referred to as 'set_zzz' and</p><p class=MsoNormal>treated as an eventIn, and can be referred to as 'zzz_changed' and</p><p class=MsoNormal>treated as an eventOut."""</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>2. The "Annotated VRML 97 Reference Manual" (</p><p class=MsoNormal>http://www.x-3-x.net/vrml/archive/annotatedVRML2/BOOK.HTM ) adds a</p><p class=MsoNormal>"tip" (not present in the spec):</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  """Note that the names of exposedFields do not include a prefix or</p><p class=MsoNormal>suffix. For example, the PointLight node's on exposedField is not</p><p class=MsoNormal>named isOn. However, the set_ and _changed conventions may be used</p><p class=MsoNormal>when referring to the eventIn and eventOut of the exposedField</p><p class=MsoNormal>respectively."""</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>  Hm, the words "may be used" inside the above sentence indeed suggest</p><p class=MsoNormal>that the set_/_changed are optional. I'm curious what other VRML and</p><p class=MsoNormal>X3D browsers do!</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>P.S. I don't have an opinion about whether this requirement should be</p><p class=MsoNormal>relaxed for X3D 4.0 or not. As the DOM compatibility is not in my main</p><p class=MsoNormal>usecase for X3D, I don't have any argument in favor. But the necessary</p><p class=MsoNormal>change in the browser implementation, to make set_/_changed optional,</p><p class=MsoNormal>would be absolutely trivial, so I don't see any argument against. So,</p><p class=MsoNormal>as long as the specification is clear about whether it should be</p><p class=MsoNormal>allowed or not, I'm fine either way:)</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Regards,</p><p class=MsoNormal>Michalis</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>