<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 had planned to get rid of the ECMAScript and fields from the Script node, but with Vince’s script, it kind of appears like we need fields that are not ECMAScript.  Another approach for handling nodes as fields is welcome.   We could extend nodeUtil to handle node fields as properties.  Hmmm.</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:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Saturday, August 4, 2018 4:04 PM<br><b>To: </b><a href="mailto:andreasplesch@gmail.com">Andreas Plesch</a><br><b>Cc: </b><a href="mailto:vmarchetti@kshell.com">Vincent Marchetti</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:x3dom-users@lists.sourceforge.net">x3dom mlist</a><br><b>Subject: </b>RE: [x3d-public] good example for ECMAScripting and Protos?</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I don’t see any _x3domNode when I look at it in the debugger.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Not processed by x3dom would be my best guess.  Can we add a script or x3dscript to X3DOM (following V4.0 guidelines), possibly compatible with X_ITE?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I could look for a USE attribute  in the selector, hmm.   But the points are defined in the DEF attributed node, so probably no go.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Thanks,<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John<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<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:andreasplesch@gmail.com">Andreas Plesch</a><br><b>Sent: </b>Saturday, August 4, 2018 8:53 AM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Cc: </b><a href="mailto:vmarchetti@kshell.com">Vincent Marchetti</a>; <a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a>; <a href="mailto:x3dom-users@lists.sourceforge.net">x3dom mlist</a><br><b>Subject: </b>Re: [x3d-public] good example for ECMAScripting and Protos?<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On Sat, Aug 4, 2018 at 4:56 AM John Carlson <yottzumm@gmail.com> wrote:<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> I have a problem with this file in X3DOM, because as far as I can tell, the SFNode fields (the node, not the field) do not have getFieldValue for point etc. as a function, for example (but one can double check me).  In other words, I don’t think this node is an X3DOM node.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I think you are referring to X3DOM's dom element method getFieldValue<o:p></o:p></p><p class=MsoNormal>and that it does not work for SFNode type fields. For example:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>shapeDomNode.getFieldValue('Appearance')<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>does not return anything.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>I do not think this will be fixed soon.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>You can try this instead<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>shapeDomNode._x3domNode._cf.appearance<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>with something like<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>dom._x3domNode._cf[field.toLowerCase]<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>which gives you an x3domNode object.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Thus I cannot take a reasonable length in the script.  One would have to parse the string.<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> That’s as clear as I can get.  I think this might be because x3dom does not process scripts correctly. We would need a script tag handler, and a field handler inside that.<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Can you help Andreas?  I’ve created a script tag before, but that code is lost. It might be in my GitHub repository somewhere, not sure.<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> We just need a script tag that has fields, but doesn’t execute its CDATA section.  I am pretty sure<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>If you add a type='text/x3dscript' (or anything) attribute, the<o:p></o:p></p><p class=MsoNormal>browser will not try to execute the script.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> How is V4.0 handling this?<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Alternatively, I can change my nodeUtil code to look at the type and do the right thing converting a string to the correct type.   Suggestions are welcome.<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Thanks for the great example, Vince,<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Should I adapt my code to deal with this failing in X3DOM, or should we change X3DOM?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>What needs to be changed in x3dom ? The getFieldValue method ?<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-Andreas<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> John<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Sent from Mail for Windows 10<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> From: vmarchetti@kshell.com<o:p></o:p></p><p class=MsoNormal>> Sent: Wednesday, August 1, 2018 9:04 PM<o:p></o:p></p><p class=MsoNormal>> To: John Carlson; X3D-Public<o:p></o:p></p><p class=MsoNormal>> Subject: Re: [x3d-public] good example for ECMAScripting and Protos?<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> See<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> http://www.kshell.com/pages/pointcloudvisualization/SphereDirectedPointSet.x3d<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> It is a X3D file with with a Prototype + ecmascript definition of a point cloud, with a vector attached to each point of the cloud.<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Example used is just points randomly distributed on sphere with directs pointed radially outward.<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Potential uses would be to implement the scanning design pattern at http://x3dgraphics.com/examples/X3dForAdvancedModeling/Scanning/X3dMeshDesignPatternIndex.html , or<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> visualizing fluid flow or  electromagnetic field<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> On Jul 31, 2018, at 10:30 PM, John Carlson <yottzumm@gmail.com> wrote:<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Is there a good example of ECMAScripting in X3D that I can use to test my X3D JSON ECMAScript preprocessor?  Preferably with Protos<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> Thanks!<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> John<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>> _______________________________________________<o:p></o:p></p><p class=MsoNormal>> x3d-public mailing list<o:p></o:p></p><p class=MsoNormal>> x3d-public@web3d.org<o:p></o:p></p><p class=MsoNormal>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org<o:p></o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal>><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>-- <o:p></o:p></p><p class=MsoNormal>Andreas Plesch<o:p></o:p></p><p class=MsoNormal>Waltham, MA 02453<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>