<div dir="auto">I think the best thing to do is not have 2 parent classes.  An example of converting with a DOM to an SAI tree is in X3DJSAIL (java):  </div><div dir="auto"><br></div><div dir="auto"><div><a href="https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/java/X3DLoaderDOM.html">https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/java/X3DLoaderDOM.html</a></div><div dir="auto"><br></div>If you find a way to convert DOM to SAI in python, I’m all ears.  I’ve tried similar things with x3d.py without success:</div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/x3dinput.py">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/x3dinput.py</a></div><div dir="auto"><br></div><div dir="auto"><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/x3djsonld.py">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/x3djsonld.py</a></div><br></div><div dir="auto"><div><a href="https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/cgx3djsonld.py">https://github.com/coderextreme/X3DJSONLD/blob/master/src/main/python/cgx3djsonld.py</a></div><br></div><div dir="auto">My recommendation is to study X3DJSAIL and try to do something like it.</div><div dir="auto"><br></div><div dir="auto">Good luck!</div><div dir="auto"><br></div><div dir="auto">John</div><br></div><div dir="auto"><br></div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote gmail_quote_container" dir="auto"><div dir="ltr" class="gmail_attr">On Wed, Jan 15, 2025 at 11:04 AM Bergstrom, Aaron via x3d-public <<a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</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 lang="EN-US" link="blue" vlink="purple" style="overflow-wrap: break-word;">
<div class="m_7191163974974812376WordSection1">
<p class="MsoNormal">Apparently, I’m a bit out of my depth when it comes to multi class inheritance. Not really a good tutorial out there for mixing inheritance from Maya python classes and other classes. I’m getting another error now.<u></u><u></u></p>
<p class="MsoNormal">“'X3DScene' object has no attribute '_Scene__children'”<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Looking up similar errors in Google basically tells me I’m not calling the inherited classes __init__ methods.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I’ll have to do some more digging.<u></u><u></u></p></div></div><div lang="EN-US" link="blue" vlink="purple" style="overflow-wrap: break-word;"><div class="m_7191163974974812376WordSection1">
<p class="MsoNormal"><u></u> <u></u></p>
<div style="border-width:1pt medium medium;border-style:solid none none;padding:3pt 0in 0in;border-color:rgb(225,225,225) currentcolor currentcolor">
<p class="MsoNormal"><b>From:</b> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> <br>
<b>Sent:</b> Wednesday, January 15, 2025 10:52 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] Question about a Python and x3d.py Error message<u></u><u></u></p>
</div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<p class="MsoNormal">self is the first parameter to instance methods.  I don’t know about class methods.  My guess is you might want instance methods, but it’s your design.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"><u></u> <u></u></p>
<div>
<div>
<p class="MsoNormal">On Wed, Jan 15, 2025 at 10:37 AM 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-width:medium medium medium 1pt;border-style:none none none solid;padding:0in 0in 0in 6pt;margin-left:4.8pt;margin-right:0in;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)">
<div>
<div>
<p class="MsoNormal">John,<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Thanks for responding.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">So in the case of the code below, would the instance method be the “def creator(cls):” method? If so, would I think do the following: “def creator(cls, self):”<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Or am I not understanding what you are saying?<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">Thanks,<u></u><u></u></p>
</div>
</div>
<div>
<div>
<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 style="border-width:1pt medium medium;border-style:solid none none;padding:3pt 0in 0in;border-color:rgb(225,225,225) currentcolor currentcolor">
<p class="MsoNormal"><b>From:</b> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>>
<br>
<b>Sent:</b> Wednesday, January 15, 2025 10:12 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] Question about a Python and x3d.py Error message<u></u><u></u></p>
</div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<p class="MsoNormal">Aaron, AFAIK, you need “self” as the first parameter in your instance methods (not functions, of course).  I don’t know about class methods.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
</div>
<div>
<p class="MsoNormal">If you’re familiar with Java or C++, this is similar to “this”.<u></u><u></u></p>
</div>
<div>
<p class="MsoNormal"> <u></u><u></u></p>
<div>
<div>
<p class="MsoNormal">On Wed, Jan 15, 2025 at 10:02 AM 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-width:medium medium medium 1pt;border-style:none none none solid;padding:0in 0in 0in 6pt;margin:5pt 0in 5pt 4.8pt;border-color:currentcolor currentcolor currentcolor rgb(204,204,204)">
<div>
<div>
<p class="MsoNormal">I need help troubleshooting a x3d.py error message.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">In developing a Python version of the Rawkee X3D exporter plugin for Maya, I am attempting to create nodes that inherit from both the Maya Python API 2.0 and x3d.py<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">As such, I have a question about python and multiple class inheritance, and an error I am seeing. Admittedly, I am not the strongest Python programmer.<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">I am getting the following error when I execute the Python code in Maya, and I’m pretty sure I do not of the __init__() function setup correctly.<u></u><u></u></p>
<p style="margin:0in"> <u></u><u></u></p>
<p style="margin:0in"># Error: TypeError: file C:\Users\<a href="http://user.name" target="_blank">user.name</a>\AppData\Roaming\Python\Python311\site-packages\x3d\x3d.py line 14984: Scene.hasChild() missing 1 required positional argument: 'self' #<u></u><u></u></p>
<p style="margin:0in"> <u></u><u></u></p>
<p style="margin:0in">Can anyone with some Python experience give me an idea of what I am doing wrong here?<u></u><u></u></p>
<p style="margin:0in"> <u></u><u></u></p>
<p style="margin:0in">Here is the code:<u></u><u></u></p>
<p style="margin:0in">#################################################################<u></u><u></u></p>
<p class="MsoNormal">import x3d<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">import maya.api.OpenMaya as aom<u></u><u></u></p>
<p class="MsoNormal">import maya.api.OpenMayaUI as aomui<u></u><u></u></p>
<p class="MsoNormal">import maya.api.OpenMayaRender as aomr<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal"># import xmltodict<u></u><u></u></p>
<p class="MsoNormal"># import json<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">class X3DScene (aom.MPxNode, x3d.Scene):<u></u><u></u></p>
<p class="MsoNormal">    TYPE_NAME    = "Scene"<u></u><u></u></p>
<p class="MsoNormal">    TYPE_ID      = aom.MTypeId(0x00108FFF)<u></u><u></u></p>
<p class="MsoNormal">    PROFILE_TYPE = "Full"<u></u><u></u></p>
<p class="MsoNormal">    VERSION      = "4.0"<u></u><u></u></p>
<p class="MsoNormal"> <u></u><u></u></p>
<p class="MsoNormal">    def __init__(self):<u></u><u></u></p>
<p class="MsoNormal">        super(X3DScene, self).__init__()<u></u><u></u></p>
<p class="MsoNormal">       
<u></u><u></u></p>
<p class="MsoNormal">    @classmethod<u></u><u></u></p>
<p class="MsoNormal">    def creator(cls):<u></u><u></u></p>
<p class="MsoNormal">        return X3DScene()<u></u><u></u></p>
<p class="MsoNormal">       
<u></u><u></u></p>
<p class="MsoNormal">    @classmethod<u></u><u></u></p>
<p class="MsoNormal">    def initialize(cls):<u></u><u></u></p>
<p class="MsoNormal">        cls.x3dDoc = x3d.X3D(profile=cls.PROFILE_TYPE, version=cls.VERSION)<u></u><u></u></p>
<p class="MsoNormal">        cls.x3dDoc.Scene = cls<u></u><u></u></p>
<p class="MsoNormal">        #######################################################<u></u><u></u></p>
<p class="MsoNormal">        # Test dump to make sure the class works as expected<u></u><u></u></p>
<p class="MsoNormal">        #print(json.dumps(xmltodict.parse(cls.x3dDoc.XML()), indent=4))<u></u><u></u></p>
<p class="MsoNormal">        print(cls.x3dDoc.XML())<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>
</blockquote>
</div>
</div>
</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>
</blockquote>
</div>
</div>
</div>
</div>

_______________________________________________<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" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div></div>