<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>Another patch</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>Sunday, May 21, 2017 5:18 AM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>RE: Running Nashorn JavaScript in X3DJSONLD environment for X3DJSAIL</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Small patch to JavaScript instructions.  I use x3djsonld folder for JavaScript generated by stylesheet.<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:yottzumm@gmail.com">John Carlson</a><br><b>Sent: </b>Sunday, May 21, 2017 5:02 AM<br><b>To: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">X3D Graphics public mailing list</a><br><b>Subject: </b>Running Nashorn JavaScript in X3DJSONLD environment for X3DJSAIL<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sorry for the extra lines.  I cannot delete them.<o:p></o:p></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).<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Install X3D.3.3.classes.jar in ~/pythonSAI<o:p></o:p></p><p class=MsoNormal>In ~/X3DJSONLD/<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>sh build.sh<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>In  ~/X3DJSONLD/src/main/shell/classpath, set the environmental variables:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>#!/bin/bash<o:p></o:p></p><p class=MsoNormal>export PYTHONSAI=/Users/coderextreme/pythonSAI<o:p></o:p></p><p class=MsoNormal>export X3DJSONLD=/Users/coderextreme/X3DJSONLD<o:p></o:p></p><p class=MsoNormal>export CLASSPATH=".;${PYTHONSAI}/X3DJSAIL.3.3.classes.jar;${X3DJSONLD}/saxon9he.jar;${X3DJSONLD}/target/X3DJSONLD-1.0-SNAPSHOT.jar"<o:p></o:p></p><p class=MsoNormal># NASHORN DOES NOT TAKE C:<o:p></o:p></p><div style='border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal>export NASHORN_CLASSPATH="${CLASSPATH};${X3DJSONLD}/src/main/nashorn"<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>cd src/main/shell<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>#Then do one of the following:<o:p></o:p></p><p class=MsoNormal>sh several.sh ../data/abox.x3d<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>OR<o:p></o:p></p><p class=MsoNormal>---------------------------------------------------------------------------------------------------------------------------------------------<o:p></o:p></p><div style='border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 1.0pt 0in'><p class=MsoNormal>#Then to include in your environment<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>.  ~/X3DJSONLD/src/main/shell/classpath<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal># convert X3D to JSON to JavaScript<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>$ java net.coderextreme.RunSaxon ---../ ---overwrite --../lib/stylesheets/X3dToJson.xslt -json ../data/abox.x3d | xargs node ../node/json2js.js<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal>After converting to JavaScript, run it:<o:p></o:p></p><p class=MsoNormal>cd ../nashorn<o:p></o:p></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<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>OR:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><div style='border:none;border-bottom:solid windowtext 1.0pt;padding:0in 0in 0in 0in'><p class=MsoNormal>#Then to include in your environment<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>.  ~/X3DJSONLD/src/main/shell/classpath<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p></div><p class=MsoNormal># Convert X3D to JavaScript<o:p></o:p></p><p class=MsoNormal>java net.coderextreme.RunSaxon ---overwrite  --../lib/stylesheets/X3dToES5.xslt -sail.js ---../nashorn/net/x3djsonld/<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>After converting to JavaScript, run it:<o:p></o:p></p><p class=MsoNormal>cd ../nashorn<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>jjs -J-Xss1g -J-Xmx4g -cp "${NASHORN_CLASSPATH}" net/x3djsonld/data/abox.sail.js<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>Results are in ../data/abox.new.x3d<o:p></o:p></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.<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 <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: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<o:p></o:p></p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 5/18/2017 9:40 PM, John Carlson wrote:<o:p></o:p></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.<o:p></o:p></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.<o:p></o:p></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).<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> This works with X3DJSAIL.<o:p></o:p></p><p class=MsoNormal>> <o:p></o:p></p><p class=MsoNormal>> Happy Nashing!<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>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?<o:p></o:p></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?<o:p></o:p></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.<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don<o:p></o:p></p><p class=MsoNormal>-- <o:p></o:p></p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu<o:p></o:p></p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149<o:p></o:p></p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman<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></div></body></html>