<div dir="auto">Sorry, dispatch table and factory are the same thing to me.</div><div dir="auto"><br></div><div dir="auto">The difference is one maps strings to functions and the others maps strings to classes.</div><div dir="auto"><br></div><div dir="auto">Good stuff</div><div dir="auto"><br></div><div dir="auto">John</div><div dir="auto"><br><div class="gmail_quote gmail_quote_container" dir="auto"><div dir="ltr" class="gmail_attr">On Mon, Sep 1, 2025 at 10:09 AM Bergstrom, Aaron <<a href="mailto:aaron.bergstrom@und.edu">aaron.bergstrom@und.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<div class="m_-411643629142800980WordSection1">
<p class="MsoNormal">John,<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">So I am not entirely familiar with programming concepts, so I apologize that I’ll have to ask for clarification.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I believe you are referring to the “createNodeFromString” Python node dictionary in which I pass it an X3D node type as a string and it gives me back an x3d.py python object for that node, which I kinda wish was actually already built into
 x3d.py so I wouldn’t have to keep my own dictionary.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I actually use it for both the loader and the exporters. I would say that it is very handy. I wouldn’t even begin to know how to do this with a schema.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">In the exporter, the dictionary is used in conjunction with the following function:<u></u><u></u></p>
<p class="MsoNormal"><b><span style="color:#7030a0">def</span> <span style="color:black">
processBasicNodeAddition(</span><span style="color:#2f5597">self</span>,
<span style="color:#c55a11">
depNode</span>, <span style="color:#7f6000">
x3dParentNode</span>, <span style="color:#548235">
x3dFieldName</span>, <span style="color:#548235">
x3dType</span>, <span style="color:#548235">
nodeName</span>=<span style="color:#c00000">None</span>)<u></u><u></u></b></p>
<ul style="margin-top:0in" type="disc">
<li class="m_-411643629142800980MsoListParagraph" style="margin-left:0in"><b><span style="color:#c55a11">depNode</span></b> --> a Maya Dependency Graph node (essentially the Maya
 node you want to turn into X3D)<u></u><u></u></li><li class="m_-411643629142800980MsoListParagraph" style="margin-left:0in"><b><span style="color:#7f6000">x3dParentNode</span></b> --> the x3d.py node (python object) that will be
 the parent of the x3d.py node that you are about to create<u></u><u></u></li><li class="m_-411643629142800980MsoListParagraph" style="margin-left:0in"><b><span style="color:#548235">x3dFieldName</span></b><span style="color:#7f6000">
</span>--> a string containing the field name of the <b><i><span style="color:#843c0c">x3dParentNode</span></i></b> to which the new x3d.py node will be attached<u></u><u></u></li><li class="m_-411643629142800980MsoListParagraph" style="margin-left:0in"><b><span style="color:#548235">x3dType
</span></b>--> a string containing the X3D node type that will be passed to the node dictionary<u></u><u></u></li><li class="m_-411643629142800980MsoListParagraph" style="margin-left:0in"><b><span style="color:#548235">nodeName
</span></b>--> a string that contains the DEF/USE value for the new node to be created. If ‘<span style="color:#c00000">None</span>’, then the DEF/USE value is set to the Maya node name<u></u><u></u></li></ul>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">This function returns a python tuple of length 2 (bna), where a) the value at index 0 has a boolean, which is set to True if the new node has the USE field populated and False if the DEF field is populated; and b) the value at index 1 is
 the new node created.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">If bna[0] == False: Then the I populate that new x3d.py node with other information from the Maya node on which it is based, otherwise the code moves on to other stuff.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">If anyone is curious, you can see the guts of the “<b><span style="color:black">processBasicNodeAddition</span></b>” function if you look at lines 1642-1696 in the RKOrganizer.py script found at the link below.<u></u><u></u></p>
<p class="MsoNormal"><a href="https://github.com/und-dream-lab/rawkee/blob/main/rawkee/RKOrganizer.py" target="_blank">https://github.com/und-dream-lab/rawkee/blob/main/rawkee/RKOrganizer.py</a>
<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">After the conference I’m going to concentrate on making tutorials and documenting this code.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Aaron<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">This lets me easily build an x3d.py scenegraph.<u></u><u></u></p></div></div><div lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word"><div class="m_-411643629142800980WordSection1">
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border:none;border-top:solid #e1e1e1 1.0pt;padding:3.0pt 0in 0in 0in">
<p class="MsoNormal"><b>From:</b> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> <br>
<b>Sent:</b> Monday, September 1, 2025 4:00 AM<br>
<b>To:</b> Extensible 3D (X3D) Graphics public discussion <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>
<b>Cc:</b> Bergstrom, Aaron <<a href="mailto:aaron.bergstrom@und.edu" target="_blank">aaron.bergstrom@und.edu</a>><br>
<b>Subject:</b> Re: [x3d-public] RawKee PE v2.0.0 Release (X3D Exporter for Maya) Now Available!<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">Aaron,<u></u><u></u></p>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">I looked at your release a bit.  It looks pretty good.  I noticed your dispatch table for string to class in your JSON Loader file.  Cool!  That's great! Makes a lot of sense.  Probably better than schema.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
</div>
<div>
<p class="MsoNormal">John<u></u><u></u></p>
</div>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Sun, Aug 31, 2025 at 10:43 PM Bergstrom, Aaron via x3d-public <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>> wrote:<u></u><u></u></p>
</div>
<blockquote style="border:none;border-left:solid #cccccc 1.0pt;padding:0in 0in 0in 6.0pt;margin-left:4.8pt;margin-right:0in">
<div>
<div>
<div>
<p class="MsoNormal">The RawKee PE v2.0.0 Release of the X3D Exporter for Maya 2023-2026+ is now available.<u></u><u></u></p>
<ul type="disc">
<li class="m_-411643629142800980m-3469846384547456286msolistparagraph">
Learn more at: <a href="https://www.web3d.org/rawkee-pe" target="_blank">https://www.web3d.org/rawkee-pe</a><u></u><u></u></li></ul>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Support for:<u></u><u></u></p>
<ul type="disc">
<li class="m_-411643629142800980m-3469846384547456286msolistparagraph">
Two-Sided Appearance<u></u><u></u></li><li class="m_-411643629142800980m-3469846384547456286msolistparagraph">
Material, PhysicalMaterial, and UnlitMaterial nodes.<u></u><u></u></li><li class="m_-411643629142800980m-3469846384547456286msolistparagraph">
Skinned HAnim Characters with Animation<u></u><u></u></li><li class="m_-411643629142800980m-3469846384547456286msolistparagraph">
Set export location as a RawKee Project or Castle Game Engine Project<u></u><u></u></li><li class="m_-411643629142800980m-3469846384547456286msolistparagraph">
And more…!<u></u><u></u></li></ul>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Thanks,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Aaron<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
</div>
<p class="MsoNormal">_______________________________________________<br>
x3d-public mailing list<br>
<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
<a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><u></u><u></u></p>
</div>
</blockquote>
</div>
</div>
</div>

</blockquote></div></div>