<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>Sorry for the extra lines.  I cannot delete them.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>No, it uses the JVM to run Nashorn JavaScript.  Yes, it uses X3Dautoclass.js.  If you need running instructions, let me know (they are on the website).</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Install X3D.3.3.classes.jar in ~/pythonSAI</p><p class=MsoNormal>In ~/X3DJSONLD/</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>sh build.sh</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In  ~/X3DJSONLD/src/main/shell/classpath, set the environmental variables:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>#!/bin/bash</p><p class=MsoNormal>export PYTHONSAI=/Users/coderextreme/pythonSAI</p><p class=MsoNormal>export X3DJSONLD=/Users/coderextreme/X3DJSONLD</p><p class=MsoNormal>export CLASSPATH=".;${PYTHONSAI}/X3DJSAIL.3.3.classes.jar;${X3DJSONLD}/saxon9he.jar;${X3DJSONLD}/target/X3DJSONLD-1.0-SNAPSHOT.jar"</p><p class=MsoNormal># NASHORN DOES NOT TAKE C:</p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'>export NASHORN_CLASSPATH="${CLASSPATH};${X3DJSONLD}/src/main/nashorn"</p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>cd src/main/shell</p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><p class=MsoNormal>#Then do one of the following:</p><p class=MsoNormal>sh several.sh ../data/abox.x3d</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>OR</p><p class=MsoNormal>---------------------------------------------------------------------------------------------------------------------------------------------</p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal style='border:none;padding:0in'>#Then to include in your environment<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>.  ~/X3DJSONLD/src/main/shell/classpath</p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'># convert X3D to JSON to JavaScript</p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>$ java net.coderextreme.RunSaxon ---../ ---overwrite --../lib/stylesheets/X3dToJson.xslt -json ../data/abox.x3d | xargs node ../node/json2js.js</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>OR:</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'>#Then to include in your environment<o:p></o:p></p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p><p class=MsoNormal style='border:none;padding:0in'>.  ~/X3DJSONLD/src/main/shell/classpath</p><p class=MsoNormal style='border:none;padding:0in'><o:p> </o:p></p></div><p class=MsoNormal># Convert X3D to JavaScript</p><p class=MsoNormal>java net.coderextreme.RunSaxon ---overwrite  --../lib/stylesheets/X3dToES5.xslt -sail.js ---../nashorn/net/x3djsonld/</p><p class=MsoNormal>---------------------------------------------------------------------------------------------------------------------------------------------</p><p class=MsoNormal>After converting to JavaScript, run it:</p><p class=MsoNormal>cd ../nashorn</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>jjs -J-Xss1g -J-Xmx4g -cp "${NASHORN_CLASSPATH}" net/coderextreme/data/abox.sail.js</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Results are in ../data/abox.new.x3d</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Another tutorial will be soon be available for Java.  Python doesn’t work yet.</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:brutzman@nps.edu">Don Brutzman</a><br><b>Sent: </b>Sunday, May 21, 2017 4:06 AM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Re: move validateSelf() from X3dToJava.xslt to X3DObject.java classin X3DJSAIL</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 5/18/2017 9:40 PM, John Carlson wrote:</p><p class=MsoNormal>> See subject.  Seems like a waste to repeat the code everywhere, when it could be shared.  I could use it in my serializer as well…  I would like validateSelf() from X3dToJava.xslt in X3DJSAIL’s X3DObject.java.  You can keep the call to validate self in the main() of course.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>sounds very logical.  will try refactoring as you suggest in a future session.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> Also attached is the X3dToES5.xslt (Nashorn) code generator.  You can download X3Dautoclass.js from https://coderextreme.net/X3DJSONLD/  It takes the same parameters as X3dToJava.xslt, but does not use the package (but it should, working on namespaces, I think).</p><p class=MsoNormal>> </p><p class=MsoNormal>> This works with X3DJSAIL.</p><p class=MsoNormal>> </p><p class=MsoNormal>> Happy Nashing!</p><p class=MsoNormal>> </p><p class=MsoNormal>> John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>hoping i understand... please confirm.  This takes an .x3d scene and converts it to javascript, utilizing X3Dautoclass.js to run?  presumably can run in node.js?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>hoping you might provide an example from beginning to end.  HelloWorld.x3d -> HelloWorldNashorn.js perhaps?</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>looking forward to understanding better, and preparing for Web3D 2017 Master Class on these topics.  TIA.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don</p><p class=MsoNormal>-- </p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu</p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman</p><p class=MsoNormal><o:p> </o:p></p></div></body></html>