<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;}
/* 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;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        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:1423378566;
        mso-list-type:hybrid;
        mso-list-template-ids:1724656560 -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:\F0D8;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-.25in;
        font-family:Wingdings;
        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;
        mso-bidi-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;
        mso-bidi-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;
        mso-bidi-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;
        mso-bidi-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;
        mso-bidi-font-family:Wingdings;}
ol
        {margin-bottom:0in;}
ul
        {margin-bottom:0in;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>Maybe I am missing it, but how does an ID correspond to a DFF? </p><p class=MsoNormal>My mem is going and maybe rtfm again, but correspond(s) is not the right word.  </p><p class=MsoNormal>It must be a unique string and is independent of an ID, or am I missing new stuffs.</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'>Finding more than one use of a DEF in VRML</li></ul><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>There are these uses: </p><p class=MsoNormal>designate a node that is part of the scenegraph, </p><p class=MsoNormal>USE the DEF to insert node in the scenegraph,</p><p class=MsoNormal>be anchor target,. </p><p class=MsoNormal>Same as XML or classic or any other x3d</p><p class=MsoNormal>Joe</p><p class=MsoNormal><o:p> </o:p></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:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Thursday, March 26, 2020 8:51 AM<br><b>To: </b><a href="mailto:michalis.kambi@gmail.com">Michalis Kamburelis</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: [x3d-public] Finding more than one use of a DEF in VRML</p></div><p class=MsoNormal><o:p> </o:p></p><div><p class=MsoNormal>Doing a bit more searching:</p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><a href="https://www.web3d.org/x3d/content/X3dTooltips.html#ID">https://www.web3d.org/x3d/content/X3dTooltips.html#ID</a> </p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal> "<b><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black;background:#99CCCC'><a href="https://www.w3.org/TR/REC-xml/#sec-attribute-types">ID</a></span></b><span style='font-size:13.5pt;font-family:"Times New Roman",serif;color:black;background:#99CCCC'> is a NMTOKEN that is unique within the scene, corresponding to the DEF attribute in X3D."</span></p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal><o:p> </o:p></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Thu, Mar 26, 2020 at 10:34 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:</p></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>I feel like an idiot.  I even read the specifications on this one and didn't get very far.</p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Thu, Mar 26, 2020 at 10:27 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:</p></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>Now I understand why I got all the blank stares when I suggested using a symbol table for DEFs. To me, a DEF is like a var in ECMAScript.  I guess DEF is more like id attribute in HTML5: double references are "allowed", for some reason.</p><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Very confusing for someone coming from a standard programming language like Java.</p></div><div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>Now i understand what you guys mean when you say ID/IDREF (at least the first half).</p></div><div><p class=MsoNormal><o:p> </o:p></p></div><div><p class=MsoNormal>John</p></div></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Thu, Mar 26, 2020 at 10:21 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:</p></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>Gotcha. </p></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal>On Thu, Mar 26, 2020 at 9:50 AM Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>> wrote:</p></div></div></blockquote></div></blockquote></div></blockquote></div><p class=MsoNormal style='margin-left:19.2pt'>There isn't a "name" field general for all nodes. Some specific nodes<br>have "name" field, but it's specific to these nodes and their needs<br>(MetadataXxx, CADPart, CADLayer, HAnimHumanoid, HAnimJoint,<br>X3DVertexAttributeNode etc.). And it has special interpretation (e.g.<br>for X3DVertexAttributeNode this "name" is a shader per-vertex<br>attribute name).<br><br>So when X3D specification (link you posted,<br><a href="https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#DEFL_USESemantics" target="_blank">https://www.web3d.org/documents/specifications/19775-1/V3.3/Part01/concepts.html#DEFL_USESemantics</a><br>) talks about """Node names""" -> it means that names assigned using<br>DEF. Not names assigned using name="xxx"...<br><br>Confusing, I know.<br><br>It's an unfortunate collision of terms, the "name of X3D node" can<br>indeed be interpreted in various ways, depending on context. When<br>someone talks of a general X3D node, then they surely mean "name<br>assigned using DEF".<br><br>Regards,<br>Michalis<br><br>czw., 26 mar 2020 o 15:25 John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> napisał(a):<br>><br>> Maybe I'm confused.  Are node names<br>><br>> name="node name"<br>><br>> or<br>><br>> DEF="node name"<br>><br>> I've been using "DEF value" for "DEF keyword" I think.<br>><br>> I think if the DEF keyword is not unique with in a scope, my ProtoExpander will blow big chunks, but I'll have to check.<br>><br>> There were many discussions on the mailing list about this, and maybe I didn't understand because I wasn't phrasing the question properly.<br>><br>> In some cases in the wrl previously reported, the DEF keyword is not unique in the source file, but I didn't check for the source (that is, I didn't inspect the source file very much), there could be additional scope stuff like a PROTO.<br>><br>> John<br>><br>> On Thu, Mar 26, 2020 at 7:25 AM Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>> wrote:<br>>><br>>> I have to correct myself -- I see x3d 3.3 specification says """Node names shall be unique in the context within which the associated DEF keyword occurs."""<br>>><br>>> All right, that's good. Looks like this rule was improved at some x3d version. That's good, it is a better idea to have all names unique (e.g. for easy EXPORT).<br>>><br>>> It still remains a question why did my converter generate repeated DEF. It should not, if source VRML didn't repeat them. I'll look into it -- please send input to reproduce it:)<br>>><br>>> Regards,<br>>> Michalis<br>>><br>>> W dniu czw., 26.03.2020 o 12:09 Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>> napisał(a):<br>>>><br>>>> As I mentioned in the other thread, multiple DEF with the same name<br>>>> are just allowed by the X3D specification. Last one "wins" (obscuring<br>>>> the others with the same name). Maybe they should be disallowed or<br>>>> discouraged, it's another discussion. But right now they are allowed<br>>>> and proper VRML / X3D reader should understand them.<br>>>><br>>>> As to why my exporter created them -- I need to see the relevant input<br>>>> file to answer it. There should be a good reason for it :)<br>>>><br>>>> Regards,<br>>>> Michalis<br>>>><br>>>> czw., 26 mar 2020 o 06:30 John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> napisał(a):<br>>>> ><br>>>> > DEF/USE is how multiparent nodes are achieved, but all DEF and USE with the same value are the same node, except for a few special cases.<br>>>> ><br>>>> > This is what one reason why HTML DOM is a poor choice...the nodes have only one parent.<br>>>> ><br>>>> > Or I’m still battling windmills?<br>>>> ><br>>>> > John<br>>>> ><br>>>> > On Wed, Mar 25, 2020 at 10:16 PM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:<br>>>> >><br>>>> >> double defining:<br>>>> >> - this stymied me too, until I realized the DEF/USE are just for the parser, and its the sequence that counts although different for different browsers.<br>>>> >> - if you redef 3 times, then USE, what will you get?<br>>>> >> - that depends on the web3d browser, with some sticking to the first DEF, some the last DEF.<br>>>> >><br>>>> >> On Wed, Mar 25, 2020 at 9:01 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>>>> >>><br>>>> >>> If one DEF specified a shape and another DEF with the same value with a different shape, wouldn't the 2 browsers show different shapes if they picked different DEFs?<br>>>> >>><br>>>> >>> I don't think double DEFs should be allowed within the same namespace.<br>>>> >>><br>>>> >>> John<br>>>> >>><br>>>> >>> On Wed, Mar 25, 2020 at 9:12 PM GPU Group <<a href="mailto:gpugroup@gmail.com" target="_blank">gpugroup@gmail.com</a>> wrote:<br>>>> >>>><br>>>> >>>> Chisel? "it was simply put in the public domain by Trapezium when they folded many years ago. They didn¹t specify any license" - Louka<br>>>> >>>> <a href="http://dug9.users.sourceforge.net/web3d/temp/chisel-src.zip" target="_blank">http://dug9.users.sourceforge.net/web3d/temp/chisel-src.zip</a><br>>>> >>>> But I suspect double-deffing isn't illegal. I think I've been through it, and different browsers honored the first or last definition.<br>>>> >>>> -Doug<br>>>> >>>><br>>>> >>>> On Wed, Mar 25, 2020 at 7:43 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>>>> >>>>><br>>>> >>>>> That is, more than one DEF with the same value.<br>>>> >>>>><br>>>> >>>>> I realize that separate PROTOs may have the same DEF due to namespaces.   Unfortunately writing a Unix script to find this takes massive brain power.<br>>>> >>>>><br>>>> >>>>> John<br>>>> >>>>><br>>>> >>>>> On Wed, Mar 25, 2020 at 8:37 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>>>> >>>>>><br>>>> >>>>>> I’m not particular looking for a vrml parser unless it catches double use of a DEF.<br>>>> >>>>>><br>>>> >>>>>> Thanks,<br>>>> >>>>>><br>>>> >>>>>> John<br>>>> >>>>>><br>>>> >>>>>> I’m thinking my next project might be a VRML validator if there isn’t one handy?  Anyone?<br>>>> >>>>>><br>>>> >>>>>> I know I can translate VRML to XML.<br>>>> >>>>>><br>>>> >>>>>> John<br>>>> >>>>>><br>>>> >>>>>> On Wed, Mar 25, 2020 at 3:38 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>>>> >>>>>>><br>>>> >>>>>>> Say, where is a VRML Validator? !!!!<br>>>> >>>>>>><br>>>> >>>>>>> On Wed, Mar 25, 2020 at 3:33 PM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br>>>> >>>>>>>><br>>>> >>>>>>>> I will download X3D-Edit and do some validation on the files, or go to the validation site @ savage<br>>>> >>>>><br>>>> >>>>> _______________________________________________<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/listinfo/x3d-public_web3d.org</a><br>>>> >>>><br>>>> >>>> _______________________________________________<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/listinfo/x3d-public_web3d.org</a><br>>>> ><br>>>> > _______________________________________________<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/listinfo/x3d-public_web3d.org</a></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>