<div dir="auto">There are three container fields for HAnimJoint, ‘skeleton’, ‘children’ (default) and ‘joints’.  I don’t disagree with Joe.</div><div><div class="gmail_quote gmail_quote_container"><div dir="auto"><br></div><div dir="auto">Until tools ignore the joints field, it’s still with us.</div><div dir="auto"><br></div><div dir="auto">John</div><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 5, 2025 at 12:22 PM Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</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 style="font-family:arial,sans-serif;font-size:12pt;color:rgb(0,0,0)"><p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Only the first Joint, root, has containerField 'skeleton'  </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">All other child Joints are containerField 'children' </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">the keyword 'skeleton' is not a Node, it is a container, a type </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif">Classic</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> skeleton [<br>    DEF Joe_HumanoidRoot ...Joint ...</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> ]</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif" dir="auto">xml</p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"><Joint  DEF='Joe_HumanoidRoot' ...  containerField='skeleton'  </p>
<p style="margin:0.1rem 0px;line-height:1;font-family:arial,sans-serif"> </p>
</div>HAnimHumanoid is a node, not a type. 
<p style="margin:0.1rem 0px;line-height:1">  </p>
<p style="margin:0.1rem 0px;line-height:1">Joe</p>
<p style="margin:0.1rem 0px;line-height:1"> </p>

<div style="border-left-width:1px;border-left-style:solid;box-sizing:border-box;padding:10px 0px 10px 15px;margin:0px;border-left-color:rgb(170,170,170)">
<p>-----Original Message-----<br>From: X3D Ecosystem public discussion <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>><br>Sent: Mar 5, 2025 10:06 AM<br>To: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>Cc: Bergstrom, Aaron <<a href="mailto:aaron.bergstrom@und.edu" target="_blank">aaron.bergstrom@und.edu</a>>, X3D Ecosystem public discussion <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>><br>Subject: Re: [X3D-Ecosystem] RawKee Update - Implemented a companion export script for x3d.py</p>
<p style="margin:0.1rem 0px;line-height:1"> </p>

<div>
<p class="MsoNormal">I suppose I could do a quick check to see if the root node in the ‘skeleton’ field has DEF=’somestring’ defined. And if so, and only then perform the flip.</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal">That would make it more portable.</p>
<p class="MsoNormal"> </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"><strong>From:</strong> John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> <br><strong>Sent:</strong> Wednesday, March 5, 2025 11:50 AM<br><strong>To:</strong> Bergstrom, Aaron <<a href="mailto:aaron.bergstrom@und.edu" target="_blank">aaron.bergstrom@und.edu</a>><br><strong>Cc:</strong> X3D Ecosystem public discussion <<a href="mailto:x3d-ecosystem@web3d.org" target="_blank">x3d-ecosystem@web3d.org</a>><br><strong>Subject:</strong> Re: [X3D-Ecosystem] RawKee Update - Implemented a companion export script for x3d.py</p>
</div>
<p class="MsoNormal"> </p>
<div>
<p class="MsoNormal">Just to be aware, if skeleton comes before joints, then this code would flip them.  You need to compare jIdx to sIdx before flipping them, AFAIK.  I realize that you’ve ordered them properly elsewhere.</p>
</div></div></div><div style="border-left-width:1px;border-left-style:solid;box-sizing:border-box;padding:10px 0px 10px 15px;margin:0px;border-left-color:rgb(170,170,170)"><div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<p class="MsoNormal"> </p>
</div>
<div>
<div>
<div>
<p class="MsoNormal">On Wed, Mar 5, 2025 at 10:57 AM Bergstrom, Aaron <<a href="mailto:aaron.bergstrom@und.edu" target="_blank">aaron.bergstrom@und.edu</a>> wrote:</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"> </p>
<p class="MsoNormal">if nType == "HAnimHumanoid":</p>
<p class="MsoNormal" style="text-indent:0.5in">jIdx = -1</p>
<p class="MsoNormal" style="text-indent:0.5in">sIdx = -1</p>
<p class="MsoNormal" style="text-indent:0.5in">for idx in range(len(mNodeList)):</p>
<p class="MsoNormal" style="margin-left:0.5in;text-indent:0.5in">if mNodeList[idx] == "joints":</p>
<p class="MsoNormal" style="margin-left:1in;text-indent:0.5in">jIdx = idx</p>
<p class="MsoNormal" style="margin-left:0.5in;text-indent:0.5in">elif mNodeList[idx] == "skeleton":</p>
<p class="MsoNormal" style="margin-left:1in;text-indent:0.5in">sIdx = idx</p>
<p class="MsoNormal" style="margin-left:0.5in;text-indent:0.5in">if sIdx != -1 and jIdx != -1:</p>
<p class="MsoNormal" style="margin-left:1in;text-indent:0.5in">mNodeList[jIdx] = "skeleton"</p>
<p class="MsoNormal" style="margin-left:1in;text-indent:0.5in">mNodeList[sIdx] = "joints"</p>
<p class="MsoNormal"> </p>
<p class="MsoNormal"> </p>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</div>

<p style="margin:0.1rem 0px;line-height:1"> </p></blockquote></div></div>
</div></div>