<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 20, 2017 at 4:31 PM, Don Brutzman <span dir="ltr"><<a href="mailto:brutzman@nps.edu" target="_blank">brutzman@nps.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 7/20/2017 12:39 PM, Andreas Plesch wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
On Thu, Jul 20, 2017 at 3:13 PM, John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a> <mailto:<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>>> wrote:<br>
<br>
    There is a node tree in X3DJSAIL.   There’s two parts to X3DJSAIL, jsail (the implementation) and sai (the interface)<br>
</blockquote>
<br>
correct, as are your other points.<br>
<br>
There is some usage of DOM internally to the library, particularly when using Java reflection, but none of that is exposed to the programmer.<br>
<br>
Conceivably we could add some form of DOM import and export for X3DJSAIL object trees.<br>
<br>
        Conversions<br>
        <a href="http://www.web3d.org/x3d/stylesheets/java/X3DJSAIL.html#Conversions" rel="noreferrer" target="_blank">http://www.web3d.org/x3d/style<wbr>sheets/java/X3DJSAIL.html#<wbr>Conversions</a><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Ok. I think sai (lowercase), the interface, defined in X3DJSAIL, is quite different from the SAI defined in the standard (abstract, java or javascript), right ?<br>
</blockquote>
<br>
Actually no...  I have implemented the X3D Java SAI interfaces quite strictly, and then added the jsail concrete classes using them.<br></blockquote><div><br></div><div>Ok. I was getting the impression that it had to be different due to the DEF/USE, Routes, statement discussions. SAI has importDocument</div><div><br></div><div> <a href="http://www.web3d.org/documents/specifications/19777-2/V3.3/Part2/functions.html#importDocument">http://www.web3d.org/documents/specifications/19777-2/V3.3/Part2/functions.html#importDocument</a></div><div><br></div><div>where document is a DOM node org.w3c.dom.Node . For cobweb-dom, this is the main function to get the initial scene from the DOM into the x3d browser. Into where would X3DJSAIL import the DOM ? What is the equivalent to the 'Browser' ?</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
Nevertheless have found a number of omissions and contradictions in the Java SAI language binding for X3D.  Issues list maintained on X3DJSAIL page at:<br>
<br>
==============================<wbr>==============================<wbr>================<br>
Specification Changes under Consideration<br>
<a href="http://www.web3d.org/x3d/stylesheets/java/X3DJSAIL.html#SpecificationChanges" rel="noreferrer" target="_blank">http://www.web3d.org/x3d/style<wbr>sheets/java/X3DJSAIL.html#<wbr>SpecificationChanges</a><br>
<br>
*  X3dJavaSpecificationChangesAnd<wbr>Issues.txt lists noted problems with the governing specification X3D Java SAI Language Bindings (ISO/IEC 19777-2).<br>
   <a href="http://www.web3d.org/x3d/stylesheets/java/X3dJavaSpecificationChangesAndIssues.txt" rel="noreferrer" target="_blank">http://www.web3d.org/x3d/styl<wbr>esheets/java/X3dJavaSpecificat<wbr>ionChangesAndIssues.txt</a><br>
<br></blockquote><div><br></div><div>Looking at these discoveries. I assume the referenced v3.0 spec. is substantially identical to v3.3 ? </div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
*  Specification prose is needed to define necessary support for DEF, USE and class attributes. </blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
*  Consider appropriate specification issues for abstract SAI and corresponding encoding specifications.<br>
*  Not needed: adding Annex D Java SAI Concrete Classes for standalone scene programming, since other approaches can be accomplished compatibly.<br>
*  Mantis issue tracker keeps track of details, alternatives and resolution for each specification issue.<br>
*  Web3D Consortium github (member-only access) is used to maintain editors-draft Web3D specifications in version control.<br>
==============================<wbr>==============================<wbr>================<br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
My mental model currently is: Use X3DJSAIL to conveniently compose and manage an (X3D looking) object graph (a 'scene'). The object graph can be serialized (written out) to XML (strings). The XML is processed by the X3D browser to an internal scene graph with state. Use SAI to directly manipulate the internal scene graph. Does that sound right ?<br>
</blockquote>
<br>
Yes.<br></blockquote><div><br></div><div>Ah, good, I am on the right track. There could be a shortcut in the sequence above if the x3d browser would be able to directly process the object graph into the internal scene graph. Let's assume xj3d could do that. I think that would include replacing USE nodes with references to their DEF nodes ? So the scene graph would not actually have a need for a USE property. Another step would be compiling Routes into a fromNodeField-toNodeField map. So the scene graph would not have a need to keep Route definitions at certain tree path locations. This is why I thought there is a difference between X3DJSAIL dealing with an object graph and SAI dealing with the actual X3D scene graph and state.</div><div><br></div><div>-Andreas</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div></div>
</div></div>