<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-2">
<html xmlns:v="urn:schemas-microsoft-com:vml" 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 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:Verdana;
panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ligatures:standardcontextual;}
p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
{mso-style-priority:99;
mso-style-link:"Plain Text Char";
margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;
mso-ligatures:standardcontextual;}
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;
mso-ligatures:standardcontextual;}
span.PlainTextChar
{mso-style-name:"Plain Text Char";
mso-style-priority:99;
mso-style-link:"Plain Text";
font-family:"Calibri",sans-serif;}
.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:857619583;
mso-list-type:hybrid;
mso-list-template-ids:231372106 1728355948 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{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:Calibri;
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><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link="#0563C1" vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoPlainText>Thanks for precise response Michalis, very helpful.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>The intent for ROUTE is that it might appear within other nodes. The phrasing in X3D4 Architecture is quite explicit about this:<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l0 level1 lfo1'>X3D 4.0 Part 1: Architecture and base components, clause 4 Concepts, 4.4.8.2 Routes<o:p></o:p></li><li class=MsoPlainText style='mso-list:l0 level1 lfo1'>https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/concepts.html#Routes<o:p></o:p></li><li style='color:black;mso-list:l0 level1 lfo1'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>Routes</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'> allows an author to declaratively connect the output events of a node to input events of other nodes, providing a way to implement complex behaviors without imperative programming. When a routed output event is fired, the corresponding destination input event receives notification and can process a response to that change. This processing can change the state of the node, generate additional events, or change the structure of the scene graph. Routes may be created declaratively in an X3D file or programmatically via an SAI call.<o:p></o:p></span></li><li style='color:black;mso-list:l0 level1 lfo1'><span style='font-size:10.0pt;font-family:"Verdana",sans-serif'>Routes are not nodes. The ROUTE statement is a construct for establishing event paths between specified fields of nodes. ROUTE statements may either appear at the top level of an X3D file or inside a node wherever fields may appear. A ROUTE statement shall only appear after the definition of the source and destination nodes. Placing a ROUTE statement within a node does not associate it with that node in any way. A ROUTE statement does follow the name scoping rules as described in 4.4.7 Run-time name scope.<o:p></o:p></span></li></ul><p><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black'>We expect that the prose and grammar in 19776-2/V3.3 Part 2: Classic VRML encoding to be reviewed and refined to match, when we get back to that document and upgrade it to X3D 4.0. I think that the current ClassicVRML spec indeed defers to the Architecture specification:<o:p></o:p></span></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l0 level1 lfo1'>X3D 3.3 Part 2: Classic VRML encoding, clause 4 Concepts, 4.3.2 Statements, 4.3.2.1 Organization of statements<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>“Any number of ROUTE statements as specified in 4.4.8.2 Routes of ISO/IEC 19775-1.”<o:p></o:p></li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>So changes (corresponding to your accurate note) may need to be made to<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'>X3D 3.3 Part 2: Classic VRML encoding, Annex A (normative), Grammar<o:p></o:p></li><li class=MsoListParagraph style='margin-left:0in;mso-list:l0 level1 lfo1'>https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/grammar.html<o:p></o:p></li></ul><p class=MsoPlainText><o:p> </o:p></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l0 level1 lfo1'>Wikipedia: Extended Backus–Naur form (EBNF)<o:p></o:p></li><li class=MsoPlainText style='mso-list:l0 level1 lfo1'>https://en.wikipedia.org/wiki/Extended_Backus-Naur_form<o:p></o:p></li></ul><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>which includes the following EBNF production rules:<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoNormal style='margin-left:.5in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:yellow;mso-highlight:yellow;mso-ligatures:none'>node</span></i><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> </span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>::=<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>nodeTypeId </span></i><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>{</span></b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> <i><span style='background:yellow;mso-highlight:yellow'>nodeBody</span> </i><b>}</b> |<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>Script {</span></b><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> scriptBody </span></i><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>}</span></b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> |<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><b><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>ComposedShader</span></i></b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> <b><i>{</i></b><i>composedShaderBody<b>}</b> |<br><b>PackagedShader</b> <b>{</b>packagedShaderBody<b>}</b> |<br><b>ShaderProgram</b> <b>{</b>shaderProgramBody<b>} </b>;</i><o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:yellow;mso-highlight:yellow;mso-ligatures:none'>nodeBody</span></i><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> </span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>::=<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:aqua;mso-highlight:aqua;mso-ligatures:none'>nodeBodyElement</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> |<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:aqua;mso-highlight:aqua;mso-ligatures:none'>nodeBodyElement</span></i><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> <span style='background:yellow;mso-highlight:yellow'>nodeBody</span> </span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>|<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>empty</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> ;<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:aqua;mso-highlight:aqua;mso-ligatures:none'>nodeBodyElement</span></i><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> </span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>::=<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>initializeOnlyId fieldValue</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> |<br><i>inputOutputId fieldValue |</i><o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>initializeOnlyId </span></i><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>IS</span></b><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> initializeOnlyId</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> |<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>inputOnlyId </span></i><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>IS</span></b><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> inputOnlyId</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> |<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>outputOnlyId </span></i><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>IS</span></b><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> outputOnlyId</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> |<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>inputOutputId </span></i><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>IS</span></b><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> inputOutputId</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> |<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:lime;mso-highlight:lime;mso-ligatures:none'>routeStatement</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> |<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>protoStatement</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> ;</span><span style='font-size:12.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'><o:p></o:p></span></p><p class=MsoNormal style='background:white'><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>and<o:p></o:p></span></p><p class=MsoNormal style='margin-left:.5in;background:white'><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;background:lime;mso-highlight:lime;mso-ligatures:none'>routeStatement</span></i><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> </span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>::=<o:p></o:p></span></p><p class=MsoNormal style='margin-left:1.0in;background:white'><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>ROUTE</span></b><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> nodeNameId </span></i><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>. </span></b><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>outputOnlyId </span></i><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>TO</span></b><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> nodeNameId </span></i><b><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'>.</span></b><i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> inputOnlyId</span></i><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'> ;</span><span style='font-size:12.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'><o:p></o:p></span></p><p class=MsoNormal style='background:white'><span style='font-size:10.0pt;font-family:"Verdana",sans-serif;color:black;mso-ligatures:none'><o:p> </o:p></span></p><p class=MsoPlainText>which, at first glance, looks OK to me from perspective of Joe’s example (and many other examples)…<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Do you have modifications to suggest for the grammar?<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>p.s. I tried to add a Mantis issue for long-term tracking but had trouble getting form to respond properly, will try again another time.<o:p></o:p></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l0 level1 lfo1'>Ensure ClassicVRML grammar matches X3D 4.0 Architecture Concepts and rules.<o:p></o:p></li><li class=MsoPlainText style='mso-list:l0 level1 lfo1'>In particular, closely examine placement of ROUTE statements.<o:p></o:p></li></ul><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>all the best, Don<o:p></o:p></p><p class=MsoPlainText>-- <o:p></o:p></p><p class=MsoPlainText>Don Brutzman Naval Postgraduate School, Code USW/Br brutzman@nps.edu<o:p></o:p></p><p class=MsoPlainText>Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149<o:p></o:p></p><p class=MsoPlainText>X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>-----Original Message-----<br>From: Michalis Kamburelis <michalis.kambi@gmail.com> <br>Sent: Friday, June 9, 2023 2:11 PM<br>To: Joseph D Williams <joedwil@earthlink.net><br>Cc: Brutzman, Donald (Don) (CIV) <brutzman@nps.edu>; X3D Graphics public mailing list <x3d-public@web3d.org><br>Subject: Re: [x3d-public] Problem in x3dviewscene: ROUTE placement</p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>The ROUTE cannot go anywhere in the file, in particular you cannot place it inside an MFNode.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><a href="https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/concepts.html"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/concepts.html</span></a><o:p></o:p></p><p class=MsoPlainText>: ROUTE is allowed at top-level and in node's body,<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>"""<o:p></o:p></p><p class=MsoPlainText>A node's body consists of any number of field statements, IS statements, ROUTE statements, PROTO statements or EXTERNPROTO statements, in any order.<o:p></o:p></p><p class=MsoPlainText>"""<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>The grammar confirms this precisely:<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><a href="https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/grammar.html"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/grammar.html</span></a><o:p></o:p></p><p class=MsoPlainText>:<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>- mfnodeValue is a sequence of nodeStatement<o:p></o:p></p><p class=MsoPlainText>- nodeStatement is only "USE ...", "DEF Xxx Node { }" or "Node { }"<o:p></o:p></p><p class=MsoPlainText>- only the more general "statement" allows ROUTE (and IMPORT, EXPORT, PROTO...). The "statement" is inside a node (but not in MFNode list).<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Regards,<o:p></o:p></p><p class=MsoPlainText>Michalis<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>pt., 9 cze 2023 o 22:37 Joseph D Williams <<a href="mailto:joedwil@earthlink.net"><span style='color:windowtext;text-decoration:none'>joedwil@earthlink.net</span></a>> napisa³(a):<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Hi All,<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> My problem with view3dscene 4.3.0 is that it quits reading upon this sequence:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> DEF StandAnimation Group {<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> children [<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> DEF StandTimer TimeSensor { … }<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> DEF Stand_r_metatarsalPitch OrientationInterpolator {<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> key [ … ]<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> keyValue [ ... ]} ...<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> ROUTE StandTimer.fraction_changed TO <o:p></o:p></p><p class=MsoPlainText>> Stand_r_ankleRotInterp.set_fraction<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> ]}<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> …<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> When it finds a ROUTE as child of Group. The error is:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> VRML/X3D: Error when reading, will skip the rest of X3D file:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Error at line 661 column 6:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Expected node type or DEF or USE, got keyword "ROUTE"<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Making this construction required.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> DEF StandAnimation Group {<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> children [<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> DEF StandTimer TimeSensor { … }<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> DEF Stand_r_metatarsalPitch OrientationInterpolator {<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> key [ … ]<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> keyValue [ ... ]} ...<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> ]}<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> ROUTE StandTimer.fraction_changed TO <o:p></o:p></p><p class=MsoPlainText>> Stand_r_ankleRotInterp.set_fraction<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> …<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Moving the Route outside the Group.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> I think we went through the gram in detail here and found that placing the statement in this MF should be OK.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Thanks,<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Joe<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Clipped for mercy<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> From: x3d-public <<a href="mailto:x3d-public-bounces@web3d.org"><span style='color:windowtext;text-decoration:none'>x3d-public-bounces@web3d.org</span></a>> On Behalf Of Joseph D <o:p></o:p></p><p class=MsoPlainText>> Williams<o:p></o:p></p><p class=MsoPlainText>> Sent: Friday, June 9, 2023 10:29 AM<o:p></o:p></p><p class=MsoPlainText>> To: X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org"><span style='color:windowtext;text-decoration:none'>x3d-public@web3d.org</span></a>><o:p></o:p></p><p class=MsoPlainText>> Subject: [x3d-public] Problem in x3dviewscene: ROUTE placement<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Error in viewX3dScene processing<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> VRML/X3D: Error when reading, will skip the rest of X3D file: Error at line 661 column 6: Expected node type or DEF or USE, got keyword "ROUTE"<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> I was hoping we could fix this player problem since we determined that a ROUTE statement can go anywhere in the file.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Thanks,<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Joe<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p></div></body></html>