<div><div dir="auto">Question:   Do we want a protoexpander, or a full proto implementation for X3DOM?</div><div dir="auto"><br></div><div dir="auto">John</div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 22, 2020 at 12:13 PM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div dir="auto">My tendency is to go for the second two, and return a brand new scenegraph.</div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 22, 2020 at 11:59 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div dir="auto">I’m thinking for an interface to the proto expander, we should either have:</div><div dir="auto"><br></div><div dir="auto">Browser.expand (X3DObject obj)</div><div dir="auto"><br></div><div dir="auto">Or</div><div dir="auto"><br></div><div dir="auto">X3DObject Browser.expand(<span style="color:rgb(0,0,0)">X3DObject obj);</span></div><div dir="auto"><span style="color:rgb(0,0,0)"><br></span></div><div dir="auto"><span style="color:rgb(0,0,0)">Or X3DObject.expand(SymbolContext sc);</span></div><div dir="auto"><span style="color:rgb(0,0,0)"><br></span></div><div dir="auto"><span style="color:rgb(0,0,0)">Which is best?</span></div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 22, 2020 at 11:39 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div dir="auto">What I can try to do is write up documentation for the JSON based expander, and then we can see how to convert it to more bindings.</div></div><div><div dir="auto"><br></div><div dir="auto">John</div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 22, 2020 at 11:35 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div dir="auto">I would target the python environment first, imho.   Everyone seems excited about it.   I’m also open to doing it in the es6 environment, I just need some prototype examples written or translated.</div><div dir="auto"><br></div><div dir="auto">X3dToES6.xslt or a serializer is becoming critical path.</div><div dir="auto"><br></div><div dir="auto">I think we need to sit down and design the abstract specification for protoexpansion?  Or do we work on code first?</div></div><div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><br></div><div dir="auto"><br></div></div><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 22, 2020 at 11:19 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div dir="auto">Maybe we can add expanding to all X3D*SAIL and x3d.* packages.</div><div dir="auto"><br></div><div dir="auto">Something to think about, something to drink about!</div></div><div><div dir="auto"><br></div><div dir="auto">John</div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 22, 2020 at 11:06 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div><div dir="auto">Don,  I’m thinking the best platform for creating  a ProtoExpander may be Java, then use jni or JSweet or hand porting to get it to other languages.   What do you think?   I should be able to help with the port to Java,  I just need an excellent namespace/scoping/context library written or found.</div></div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Fri, May 22, 2020 at 1:06 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)"><div dir="auto">Design considerations.  Create one or more dispatch tables to classes like ProtoDeclare, ProtoInterface, ProtoBody, ProtoInstance, ROUTE, Script,etc.   Add handle method to each class.</div><div dir="auto"><br></div><div dir="auto">Reconsider what constitutes a scope.   Does a scope have a symbol table?</div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>
</blockquote></div></div>