<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;}
/* Style Definitions */
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;}
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:843592108;
mso-list-type:hybrid;
mso-list-template-ids:164537600 -836369614 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l0:level1
{mso-level-start-at:16;
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;}
@list l1
{mso-list-id:1383938913;
mso-list-type:hybrid;
mso-list-template-ids:21522434 1219253102 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}
@list l1:level1
{mso-level-start-at:16;
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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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 l1: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>Hi Michalis - am surprised this is any surprise, but so it goes. There is no "decision" to be made here, the X3D 4.0 Architecture is defined. Am hoping to help with understanding and consistency in all variations of X3D. Please see my recent note on this thread in response to Vince.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Regarding importance and examples, several responses. There are many in the Web3D Example archives.<o:p></o:p></p><p class=MsoPlainText>- Event-producing scene-graph blocks are much harder to understand/diagnose/debug when ROUTE statements might be thousands of lines away.<o:p></o:p></p><p class=MsoPlainText>- I've found in class that students simply did not understand ROUTEs when they were pushed to the end of the file.<o:p></o:p></p><p class=MsoPlainText>- This sequencing has been allowed in X3D4 Architecture for a long time.<o:p></o:p></p><p class=MsoPlainText>- The ClassicVRML97 grammar has similar counterparts in grammars defined by X3D XML DOCTYPE and Schema, which do permit that.<o:p></o:p></p><p class=MsoPlainText>- Personally I have found that the ability to put comments amidst source/destination/ROUTE constructs is helpful too – indeed the “pretty print” annotated HTML output applies that technique as author-assist HMTL-linked documentation for every example too, confirming such utility to authors.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>My note "special locations related to Inline" was mistaken, sorry. The X3D 4.0 architecture states for both IMPORT and EXPORT that they can appear anywhere in the file.<o:p></o:p></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l0 level1 lfo2'>https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/networking.html#IMPORTStatement<o:p></o:p></li></ul><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l1 level1 lfo1'>https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/networking.html#EXPORTStatement<o:p></o:p></li></ul><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>The examples I’m thinking of are in Web3D version control.<o:p></o:p></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l1 level1 lfo1'>X3D Resources, Examples: Scene Archives for X3D<o:p></o:p></li><li class=MsoPlainText style='mso-list:l1 level1 lfo1'>https://www.web3d.org/x3d/content/examples/X3dResources.html#Examples<o:p></o:p></li></ul><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>… for instance, here is an old and worthy one:<o:p></o:p></p><ul style='margin-top:0in' type=disc><li class=MsoPlainText style='mso-list:l1 level1 lfo1'>X3D Example Archives: VRML 2 Sourcebook, Chapter 08 Animating Position Orientation Scale, Figure 08 3 Position Interpolator<o:p></o:p></li><li class=MsoPlainText style='mso-list:l1 level1 lfo1'>https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter08AnimatingPositionOrientationScale/Figure08_3PositionInterpolatorIndex.html<o:p></o:p></li><li class=MsoPlainText style='mso-list:l1 level1 lfo1'>https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter08AnimatingPositionOrientationScale/Figure08_3PositionInterpolator.html<o:p></o:p></li><li class=MsoPlainText style='mso-list:l1 level1 lfo1'>https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter08AnimatingPositionOrientationScale/Figure08_3PositionInterpolator.x3d<o:p></o:p></li><li class=MsoPlainText style='mso-list:l1 level1 lfo1'>https://www.web3d.org/x3d/content/examples/Vrml2Sourcebook/Chapter08AnimatingPositionOrientationScale/Figure08_3PositionInterpolator.x3dv<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: Saturday, June 10, 2023 3:01 PM<br>To: vmarchetti@kshell.com<br>Cc: X3D-Public <x3d-public@web3d.org>; Brutzman, Donald (Don) (CIV) <brutzman@nps.edu><br>Subject: Re: [x3d-public] Problem in x3dviewscene: ROUTE placement</p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>> BLUF: it is important and allowed for ROUTE statements (and prototype statements) to appear in MFNode lists, side by side with other nodes.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Why? I don't see what would be the added value of allowing ROUTE statements (or prototypes) in MFNode lists.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>We had classic VRML specification saying that ROUTE statements are not allowed in MFNode for many years, and all the X3D models I've seen so far conform to this requirement -- the only exception being Joe model mentioned in this thread.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>> Not exactly sure what you mean by MFList.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Yeah, sorry -- I meant MFNode.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>> IMPORT and EXPORT statements only appear in special locations related to Inline node usage, and don’t seem to need special mention in the prose above.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Not sure what you mean here by "special locations related to Inline".<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>IMPORT and EXPORT can occur at the top-level of X3D. The grammar ( <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>) doesn't "tie" them to Inline node in any way.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>"""<o:p></o:p></p><p class=MsoPlainText>statement ::=<o:p></o:p></p><p class=MsoPlainText> nodeStatement |<o:p></o:p></p><p class=MsoPlainText> importStatement |<o:p></o:p></p><p class=MsoPlainText> exportStatement |<o:p></o:p></p><p class=MsoPlainText> protoStatement |<o:p></o:p></p><p class=MsoPlainText> routeStatement ;<o:p></o:p></p><p class=MsoPlainText>"""<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>> We certainly have many hundreds of validated examples that include ROUTE statements along with other children nodes, as part of MFNode lists. Large parts of our existing infrastructure support this construct, in accordance with X3D Architecture.<o:p></o:p></p><p class=MsoPlainText><o:p> </o:p></p><p class=MsoPlainText>Where are these "hundreds of validated examples" that have ROUTEs inside MFNode lists, in X3D classic encoding? I was testing view3dscene on a lot of Web3d resources. I never seen so far a X3D classic file that has ROUTEs inside MFNode lists -- except the Joe's model mentioned in this thread.<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>sob., 10 cze 2023 o 21:50 <a href="mailto:vmarchetti@kshell.com"><span style='color:windowtext;text-decoration:none'>vmarchetti@kshell.com</span></a> <<a href="mailto:vmarchetti@kshell.com"><span style='color:windowtext;text-decoration:none'>vmarchetti@kshell.com</span></a>> napisa³(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>><o:p> </o:p></p><p class=MsoPlainText>> On Jun 10, 2023, at 2:04 PM, Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu"><span style='color:windowtext;text-decoration:none'>brutzman@nps.edu</span></a>> wrote:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Well, closer, but not quite there yet. Here is some more “language <o:p></o:p></p><p class=MsoPlainText>> lawyering.” 8)<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> BLUF: it is important and allowed for ROUTE statements (and prototype statements) to appear in MFNode lists, side by side with other nodes.<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 don't judge this this principle is stated the X3D standard. I don't agree that the standard should be edited to make it conform to this principle. The original architects of VRML, later evolved into X3D, introduced the concepts of 'statements' and of nodes, and chose to make the function of connection between diffent parts of a scene graph (which is a hierchical structure of nodes ) defined by ROUTE statements.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> If the standard were to be edited to explicitly conform to this <o:p></o:p></p><p class=MsoPlainText>> principle, we would also need to modify the formal grammar for <o:p></o:p></p><p class=MsoPlainText>> ClassicVRML encoding<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 href="https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/gra"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/gra</span></a><o:p></o:p></p><p class=MsoPlainText>> mmar.html<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> In this grammer are definitions:<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> nodeStatement ::= node | DEF nodeNameId node | USE nodeNameId ; ...<o:p></o:p></p><p class=MsoPlainText>> nodeStatements ::= nodeStatement | nodeStatement nodeStatements ; <o:p></o:p></p><p class=MsoPlainText>> mfnodeValue ::= nodeStatement | [ ] | [ nodeStatements ] ;<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> The mfnodeValue grammar would need to have routeStatement added, and the theological questions about whether an MFNode can have only ROUTE statements resolved.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> I think it would be a disservice to our developers to make changes in the formal grammar of our Classic VRML encoding in this way. If there are examples of X3D in Classic VRML encodings with this structure which are not being caught by validators, then that is an issue for the validators.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Vince Marchetti<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>> 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 <a href="mailto:brutzman@nps.edu"><span style='color:windowtext;text-decoration:none'>brutzman@nps.edu</span></a><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 <o:p></o:p></p><p class=MsoPlainText>> <a href="https://faculty.nps.edu/brutzman"><span style='color:windowtext;text-decoration:none'>https://faculty.nps.edu/brutzman</span></a><o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> -----Original Message-----<o:p></o:p></p><p class=MsoPlainText>> From: Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com"><span style='color:windowtext;text-decoration:none'>michalis.kambi@gmail.com</span></a>><o:p></o:p></p><p class=MsoPlainText>> Sent: Friday, June 9, 2023 4:46 PM<o:p></o:p></p><p class=MsoPlainText>> To: Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu"><span style='color:windowtext;text-decoration:none'>brutzman@nps.edu</span></a>><o:p></o:p></p><p class=MsoPlainText>> Cc: Joseph D Williams <<a href="mailto:joedwil@earthlink.net"><span style='color:windowtext;text-decoration:none'>joedwil@earthlink.net</span></a>>; X3D Graphics public <o:p></o:p></p><p class=MsoPlainText>> mailing list <<a href="mailto:x3d-public@web3d.org"><span style='color:windowtext;text-decoration:none'>x3d-public@web3d.org</span></a>>; <a href="mailto:puk@igraphics.com"><span style='color:windowtext;text-decoration:none'>puk@igraphics.com</span></a><o:p></o:p></p><p class=MsoPlainText>> Subject: Re: [x3d-public] Problem in x3dviewscene: ROUTE placement<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> I do not see any need to change the X3D spec here. For once, it is all <o:p></o:p></p><p class=MsoPlainText>> correct in X3D spec :) And "Architecture and base components" is <o:p></o:p></p><p class=MsoPlainText>> consistent with what "Classic VRML encoding" is saying, and both <o:p></o:p></p><p class=MsoPlainText>> chapters of "Classic VRML encoding" ("4 Concepts" and "Annex A<o:p></o:p></p><p class=MsoPlainText>> (normative) Grammar") are consistent.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Joe's model should just be fixed, from what I can tell -- you have to move ROUTE outside of the [ ... ]. It makes sense that MFList [ ... ] should contain only nodes.<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> From what I can tell,<o:p></o:p></p><p class=MsoPlainText>> <a href="https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/gra"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/gra</span></a><o:p></o:p></p><p class=MsoPlainText>> mmar.html clearly says that ROUTE cannot be part of MFList [ ... ] , <o:p></o:p></p><p class=MsoPlainText>> and that's OK. You have to place ROUTE within some node (or at top-level).<o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>> Within MFList [ ... ] you can only have nodes (or USE of nodes). You <o:p></o:p></p><p class=MsoPlainText>> cannot place ROUTE, EXPORT, IMPORT, PROTO... within MFList [ ... ] and <o:p></o:p></p><p class=MsoPlainText>> that's OK, that's simple. Let's not break it :)<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>> sob., 10 cze 2023 o 01:30 Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu"><span style='color:windowtext;text-decoration:none'>brutzman@nps.edu</span></a>> napisa³(a):<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><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><p class=MsoPlainText>> > X3D 4.0 Part 1: Architecture and base components, clause 4 Concepts,<o:p></o:p></p><p class=MsoPlainText>> > 4.4.8.2 Routes<o:p></o:p></p><p class=MsoPlainText>> > <a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS</span></a>.<o:p></o:p></p><p class=MsoPlainText>> > pr oof/Part01/concepts.html#Routes Routes allows an author to <o:p></o:p></p><p class=MsoPlainText>> > 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></p><p class=MsoPlainText>> > 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></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > 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></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > X3D 3.3 Part 2: Classic VRML encoding, clause 4 Concepts, 4.3.2 <o:p></o:p></p><p class=MsoPlainText>> > Statements, 4.3.2.1 Organization of statements “Any number of ROUTE statements as specified in 4.4.8.2 Routes of ISO/IEC 19775-1.”<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > So changes (corresponding to your accurate note) may need to be made <o:p></o:p></p><p class=MsoPlainText>> > to<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > X3D 3.3 Part 2: Classic VRML encoding, Annex A (normative), Grammar <o:p></o:p></p><p class=MsoPlainText>> > <a href="https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/g"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/g</span></a><o:p></o:p></p><p class=MsoPlainText>> > rammar.html<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>> > Wikipedia: Extended Backus–Naur form (EBNF)<o:p></o:p></p><p class=MsoPlainText>> > <a href="https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen"><span style='color:windowtext;text-decoration:none'>https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fen</span></a><o:p></o:p></p><p class=MsoPlainText>> > .wikipedia.org%2Fwiki%2FExtended_Backus-Naur_form&data=05%7C01%7Cbru<o:p></o:p></p><p class=MsoPlainText>> > tzman%40nps.edu%7Cc987a5e90a694d917b8108db69fe4676%7C6d936231a51740e<o:p></o:p></p><p class=MsoPlainText>> > a9199f7578963378e%7C0%7C0%7C638220313435712806%7CUnknown%7CTWFpbGZsb<o:p></o:p></p><p class=MsoPlainText>> > 3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3<o:p></o:p></p><p class=MsoPlainText>> > D%7C2000%7C%7C%7C&sdata=Xf0JfdtLtWnVFum%2BfQsuatKrJogDaHlh2GnnK45hFG<o:p></o:p></p><p class=MsoPlainText>> > A%3D&reserved=0<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><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=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > node ::=<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > nodeTypeId { nodeBody } |<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > Script { scriptBody } |<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > ComposedShader {composedShaderBody} | PackagedShader <o:p></o:p></p><p class=MsoPlainText>> > {packagedShaderBody} | ShaderProgram {shaderProgramBody} ;<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > nodeBody ::=<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > nodeBodyElement |<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > nodeBodyElement nodeBody |<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > empty ;<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > nodeBodyElement ::=<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > initializeOnlyId fieldValue |<o:p></o:p></p><p class=MsoPlainText>> > inputOutputId fieldValue |<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > initializeOnlyId IS initializeOnlyId |<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > inputOnlyId IS inputOnlyId |<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > outputOnlyId IS outputOnlyId |<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > inputOutputId IS inputOutputId |<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > routeStatement |<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > protoStatement ;<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > and<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > routeStatement ::=<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > ROUTE nodeNameId . outputOnlyId TO nodeNameId . inputOnlyId ;<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>> > which, at first glance, looks OK to me from perspective of Joe’s <o:p></o:p></p><p class=MsoPlainText>> > example (and many other examples)…<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>> > 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>> ><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><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > Ensure ClassicVRML grammar matches X3D 4.0 Architecture Concepts and rules.<o:p></o:p></p><p class=MsoPlainText>> > In particular, closely examine placement of ROUTE statements.<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>> > all the best, Don<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>> > Don Brutzman Naval Postgraduate School, Code USW/Br <a href="mailto:brutzman@nps.edu"><span style='color:windowtext;text-decoration:none'>brutzman@nps.edu</span></a><o:p></o:p></p><p class=MsoPlainText>> ><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>> ><o:p></o:p></p><p class=MsoPlainText>> > X3D graphics, virtual worlds, navy robotics <o:p></o:p></p><p class=MsoPlainText>> > <a href="https://faculty.nps.edu/brutzman"><span style='color:windowtext;text-decoration:none'>https://faculty.nps.edu/brutzman</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>> ><o:p></o:p></p><p class=MsoPlainText>> > -----Original Message-----<o:p></o:p></p><p class=MsoPlainText>> > From: Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com"><span style='color:windowtext;text-decoration:none'>michalis.kambi@gmail.com</span></a>><o:p></o:p></p><p class=MsoPlainText>> > Sent: Friday, June 9, 2023 2:11 PM<o:p></o:p></p><p class=MsoPlainText>> > To: Joseph D Williams <<a href="mailto:joedwil@earthlink.net"><span style='color:windowtext;text-decoration:none'>joedwil@earthlink.net</span></a>><o:p></o:p></p><p class=MsoPlainText>> > Cc: Brutzman, Donald (Don) (CIV) <<a href="mailto:brutzman@nps.edu"><span style='color:windowtext;text-decoration:none'>brutzman@nps.edu</span></a>>; X3D Graphics <o:p></o:p></p><p class=MsoPlainText>> > 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: Re: [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>> ><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>> ><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/c"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/c</span></a><o:p></o:p></p><p class=MsoPlainText>> > on<o:p></o:p></p><p class=MsoPlainText>> > cepts.html<o:p></o:p></p><p class=MsoPlainText>> ><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>> ><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>> ><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>> ><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/g"><span style='color:windowtext;text-decoration:none'>https://www.web3d.org/documents/specifications/19776-2/V3.3/Part02/g</span></a><o:p></o:p></p><p class=MsoPlainText>> > ra<o:p></o:p></p><p class=MsoPlainText>> > mmar.html<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>> > - mfnodeValue is a sequence of nodeStatement<o:p></o:p></p><p class=MsoPlainText>> ><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>> ><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>> ><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>> ><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>> ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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>> ><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>> > > …<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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > > ]}<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>> ><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>> > ><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>> > ><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>> > ><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>> > ><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><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>> > ><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 <o:p></o:p></p><p class=MsoPlainText>> > > Joseph D<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > > Williams<o:p></o:p></p><p class=MsoPlainText>> ><o:p></o:p></p><p class=MsoPlainText>> > > Sent: Friday, June 9, 2023 10:29 AM<o:p></o:p></p><p class=MsoPlainText>> ><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>> ><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>> > ><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>> > ><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>> > ><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>> > ><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>> > ><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><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>> x3d-public mailing list<o:p></o:p></p><p class=MsoPlainText>> <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>> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org"><span style='color:windowtext;text-decoration:none'>http://web3d.org/mailman/listinfo/x3d-public_web3d.org</span></a><o:p></o:p></p><p class=MsoPlainText>><o:p> </o:p></p><p class=MsoPlainText>><o:p> </o:p></p></div></body></html>