<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Hey guys, "please don't go there."  You should never need to poke around with __init__ or inheritance or any of that internal stuff.  Those code patterns are autogenerated, so you don't have to do any of that.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Just build a scene graph.  The vocabulary is simply X3D.</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<div class="elementToProof" style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
Corrolary:   "creativity is punished"   😨</div>
<div class="elementToProof" style="font-family: "Courier New"; font-size: 9pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="Signature" class="elementToProof">
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">all the best, Don</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">--</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman@nps.edu</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA    +1.831.656.2149</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;">X3D graphics, virtual worlds, navy robotics https://faculty.nps.edu/brutzman</span></p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><span style="font-family: "Courier New"; font-size: 9pt;"> </span></p>
</div>
<div id="appendonsend"></div>
<div style="font-family: Aptos, Aptos_EmbeddedFont, Aptos_MSFontService, Calibri, Helvetica, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);">
<br>
</div>
<hr style="display: inline-block; width: 98%;">
<div dir="ltr" id="divRplyFwdMsg"><span style="font-family: Calibri, sans-serif; font-size: 11pt; color: rgb(0, 0, 0);"><b>From:</b> x3d-public <x3d-public-bounces@web3d.org> on behalf of Bergstrom, Aaron via x3d-public <x3d-public@web3d.org><br>
<b>Sent:</b> Wednesday, January 15, 2025 9:03 AM<br>
<b>To:</b> Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br>
<b>Cc:</b> Bergstrom, Aaron <aaron.bergstrom@und.edu><br>
<b>Subject:</b> Re: [x3d-public] Question about a Python and x3d.py Error message</span>
<div> </div>
</div>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">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.</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">“'X3DScene' object has no attribute '_Scene__children'”</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p class="elementToProof" style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">
Looking up similar errors in Google basically tells me I’m not calling the inherited classes __init__ methods.</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">I’ll have to do some more digging.</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<div style="padding: 3pt 0in 0in; border-top: 1pt solid rgb(225, 225, 225);">
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><b>From:</b> John Carlson <yottzumm@gmail.com><br>
<b>Sent:</b> Wednesday, January 15, 2025 10:52 AM<br>
<b>To:</b> Extensible 3D (X3D) Graphics public discussion <x3d-public@web3d.org><br>
<b>Cc:</b> Bergstrom, Aaron <aaron.bergstrom@und.edu><br>
<b>Subject:</b> Re: [x3d-public] Question about a Python and x3d.py Error message</p>
</div>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">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.</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">On Wed, Jan 15, 2025 at 10:37 AM Bergstrom, Aaron via x3d-public <<span style="color: blue;"><u><a href="mailto:x3d-public@web3d.org" id="OWAdf5131ee-d919-7710-23fd-ee27e7e047d4" class="OWAAutoLink" style="color: blue; margin-top: 0px; margin-bottom: 0px;">x3d-public@web3d.org</a></u></span>>
 wrote:</p>
<blockquote style="margin-right: 0in; margin-left: 4.8pt; padding: 0in 0in 0in 6pt; border-left: 1pt solid rgb(204, 204, 204);">
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">John,</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">Thanks for responding.</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">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):”</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">Or am I not understanding what you are saying?</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">Thanks,</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">Aaron</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<div style="padding: 3pt 0in 0in; border-top: 1pt solid rgb(225, 225, 225);">
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"><b>From:</b> John Carlson <<span style="color: blue;"><u><a href="mailto:yottzumm@gmail.com" id="OWA34264e90-5211-c23b-dbaf-04cd7461b179" class="OWAAutoLink" style="color: blue; margin-top: 0px; margin-bottom: 0px;">yottzumm@gmail.com</a></u></span>><br>
<b>Sent:</b> Wednesday, January 15, 2025 10:12 AM<br>
<b>To:</b> Extensible 3D (X3D) Graphics public discussion <<span style="color: blue;"><u><a href="mailto:x3d-public@web3d.org" id="OWA250daba6-ca90-8e7b-85a4-8e1d69f58537" class="OWAAutoLink" style="color: blue; margin-top: 0px; margin-bottom: 0px;">x3d-public@web3d.org</a></u></span>><br>
<b>Cc:</b> Bergstrom, Aaron <<span style="color: blue;"><u><a href="mailto:aaron.bergstrom@und.edu" id="OWAc2471a4e-d2c6-618d-4a12-1b663e280e74" class="OWAAutoLink" style="color: blue; margin-top: 0px; margin-bottom: 0px;">aaron.bergstrom@und.edu</a></u></span>><br>
<b>Subject:</b> Re: [x3d-public] Question about a Python and x3d.py Error message</p>
</div>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">Aaron, AFAIK, you need “self” as the first parameter in your instance methods (not functions, of course).  I don’t know about class methods.</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">If you’re familiar with Java or C++, this is similar to “this”.</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">On Wed, Jan 15, 2025 at 10:02 AM Bergstrom, Aaron via x3d-public <<span style="color: blue;"><u><a href="mailto:x3d-public@web3d.org" id="OWA35f60fac-6759-33af-9fcc-ed95d7648d73" class="OWAAutoLink" style="color: blue; margin-top: 0px; margin-bottom: 0px;">x3d-public@web3d.org</a></u></span>>
 wrote:</p>
<blockquote style="margin: 5pt 0in 5pt 4.8pt; padding: 0in 0in 0in 6pt; border-left: 1pt solid rgb(204, 204, 204);">
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">I need help troubleshooting a x3d.py error message.</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">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</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">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.</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">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.</p>
<p style="margin: 0in;"> </p>
<p style="margin: 0in;"># Error: TypeError: file C:\Users\<span style="color: blue;"><u><a href="http://user.name/" id="OWAc6b78eff-64c9-d69f-0f26-70582ba87938" class="OWAAutoLink" originalsrc="http://user.name/" data-auth="Verified" style="color: blue; margin-top: 0px; margin-bottom: 0px;">user.name</a></u></span>\AppData\Roaming\Python\Python311\site-packages\x3d\x3d.py
 line 14984: Scene.hasChild() missing 1 required positional argument: 'self' #</p>
<p style="margin: 0in;"> </p>
<p style="margin: 0in;">Can anyone with some Python experience give me an idea of what I am doing wrong here?</p>
<p style="margin: 0in;"> </p>
<p style="margin: 0in;">Here is the code:</p>
<p style="margin: 0in;">#################################################################</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">import x3d</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">import maya.api.OpenMaya as aom</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">import maya.api.OpenMayaUI as aomui</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">import maya.api.OpenMayaRender as aomr</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"># import xmltodict</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"># import json</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">class X3DScene (aom.MPxNode, x3d.Scene):</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">    TYPE_NAME    = "Scene"</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">    TYPE_ID      = aom.MTypeId(0x00108FFF)</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">    PROFILE_TYPE = "Full"</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">    VERSION      = "4.0"</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;"> </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">    def __init__(self):</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">        super(X3DScene, self).__init__()</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">       </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">    @classmethod</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">    def creator(cls):</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">        return X3DScene()</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">       </p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">    @classmethod</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">    def initialize(cls):</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">        cls.x3dDoc = x3d.X3D(profile=cls.PROFILE_TYPE, version=cls.VERSION)</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">        cls.x3dDoc.Scene = cls</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">        #######################################################</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">        # Test dump to make sure the class works as expected</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">        #print(json.dumps(xmltodict.parse(cls.x3dDoc.XML()), indent=4))</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">        print(cls.x3dDoc.XML())</p>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">_______________________________________________<br>
x3d-public mailing list<br>
<span style="color: blue;"><u><a href="mailto:x3d-public@web3d.org" id="OWAd36d6a22-8162-20d5-c14d-c510ab80d9e7" class="OWAAutoLink" style="color: blue; margin-top: 0px; margin-bottom: 0px;">x3d-public@web3d.org</a></u></span><br>
<span style="color: blue;"><u><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" id="OWA25c76c02-0150-2b39-7306-2fce9a4f2089" class="OWAAutoLink" data-auth="NotApplicable" style="color: blue; margin-top: 0px; margin-bottom: 0px;">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></u></span></p>
</blockquote>
<p style="margin: 0in; font-family: Calibri, sans-serif; font-size: 11pt;">_______________________________________________<br>
x3d-public mailing list<br>
<span style="color: blue;"><u><a href="mailto:x3d-public@web3d.org" id="OWA4dcda9ba-6f95-5591-6536-91ad1a25c475" class="OWAAutoLink" style="color: blue; margin-top: 0px; margin-bottom: 0px;">x3d-public@web3d.org</a></u></span><br>
<span style="color: blue;"><u><a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" id="OWAe30b9ce4-d20a-8a85-6f9a-9594615f9457" class="OWAAutoLink" data-auth="NotApplicable" style="color: blue; margin-top: 0px; margin-bottom: 0px;">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a></u></span></p>
</blockquote>
</body>
</html>