<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
.MsoChpDefault
        {mso-style-type:export-only;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72"><div class=WordSection1><p class=MsoNormal>My code cannot handle different methods for the same parent/child pair <span style='font-family:"Segoe UI Emoji",sans-serif'>☹</span>. I will have to revisit at some point.  Is there anyway to programmatically determine this in the object model, or does it take human intervention? I may have to rewrite quite a bit…</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>John</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Sent from <a href="https://go.microsoft.com/fwlink/?LinkId=550986">Mail</a> for Windows 10</p><p class=MsoNormal><o:p> </o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:brutzman@nps.edu">Don Brutzman</a><br><b>Sent: </b>Saturday, March 17, 2018 3:12 PM<br><b>To: </b><a href="mailto:yottzumm@gmail.com">John Carlson</a><br><b>Cc: </b><a href="mailto:x3d-public@web3d.org">x3d-public@web3d.org</a><br><b>Subject: </b>Re: [x3d-public] HAnim X3DJSAIL question. Adding joint to humanoid.</p></div><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>On 3/17/2018 11:40 AM, John Carlson wrote:</p><p class=MsoNormal>> I believe it’s addJoints().</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Correct for the top-level USE node references.  However use addChild for constructing the skeleton.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>Please see Javadoc and examples.</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>http://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/HAnim/package-summary.html</p><p class=MsoNormal>http://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/HAnim/HAnimHumanoidObject.html</p><p class=MsoNormal>http://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/HAnim/HAnimHumanoidObject.html#addJoints-org.web3d.x3d.jsail.HAnim.HAnimJointObject-</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>http://www.web3d.org/x3d/content/examples/Basic/javadoc/Basic/HumanoidAnimation</p><p class=MsoNormal>http://www.web3d.org/x3d/content/examples/Basic/javadoc/Basic/HumanoidAnimation/package-summary.html</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>example</p><p class=MsoNormal>http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/DiamondManLOA_1Index.html</p><p class=MsoNormal>http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/DiamondManLOA_1.x3d</p><p class=MsoNormal>http://www.web3d.org/x3d/content/examples/Basic/javadoc/Basic/HumanoidAnimation/DiamondManLOA_1.html</p><p class=MsoNormal>http://www.web3d.org/x3d/content/examples/Basic/HumanoidAnimation/DiamondManLOA_1.java</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>excerpts from original .x3d and autogenerated .java:</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><Scene></p><p class=MsoNormal>   <WorldInfo info='[omitted]' title='HANIM 1.1 Default Joint Centers, LOA1'/></p><p class=MsoNormal>   <NavigationInfo speed='1.5'/></p><p class=MsoNormal>   <HAnimHumanoid DEF='DiamondMan' info='[omitted]' name='humanoid' version='2.0'></p><p class=MsoNormal>                <HAnimJoint DEF='hanim_HumanoidRoot' center='0.0 0.8240 0.0277' containerField='skeleton' name='HumanoidRoot'></p><p class=MsoNormal>                  <HAnimJoint DEF='hanim_sacroiliac' center='0.0 0.9149 0.0016' name='sacroiliac'></p><p class=MsoNormal>                                <Transform translation='0.0 0.9149 0.0016'></p><p class=MsoNormal>                                  <Shape DEF='DiamondShape'></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>.setScene(new SceneObject()</p><p class=MsoNormal>   .addChild(new WorldInfoObject().setInfo(WorldInfo_3_28_info).setTitle("HANIM 1.1 Default Joint Centers, LOA1"))</p><p class=MsoNormal>   .addChild(new NavigationInfoObject().setSpeed(1.5f))</p><p class=MsoNormal>   .addChild(new HAnimHumanoidObject("DiamondMan").setName("humanoid").setInfo(DiamondMan_3_30_info).setVersion("2.0")</p><p class=MsoNormal>                .addSkeleton(new HAnimJointObject("hanim_HumanoidRoot").setName("HumanoidRoot").setCenter(0.0f,0.8240f,0.0277f)</p><p class=MsoNormal>                  .addChild(new HAnimJointObject("hanim_sacroiliac").setName("sacroiliac").setCenter(0.0f,0.9149f,0.0016f)</p><p class=MsoNormal>                                .addChild(new TransformObject().setTranslation(0.0f,0.9149f,0.0016f)</p><p class=MsoNormal>                                  .addChild(new ShapeObject("DiamondShape")</p><p class=MsoNormal>[etc.]</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><HAnimJoint USE='hanim_HumanoidRoot' containerField='joints'/></p><p class=MsoNormal><HAnimJoint USE='hanim_sacroiliac' containerField='joints'/></p><p class=MsoNormal><HAnimJoint USE='hanim_l_hip' containerField='joints'/></p><p class=MsoNormal><HAnimJoint USE='hanim_l_knee' containerField='joints'/></p><p class=MsoNormal><HAnimJoint USE='hanim_l_ankle' containerField='joints'/></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>       .addJoints(new HAnimJointObject().setUSE("hanim_HumanoidRoot"))</p><p class=MsoNormal>       .addJoints(new HAnimJointObject().setUSE("hanim_sacroiliac"))</p><p class=MsoNormal>       .addJoints(new HAnimJointObject().setUSE("hanim_l_hip"))</p><p class=MsoNormal>       .addJoints(new HAnimJointObject().setUSE("hanim_l_knee"))</p><p class=MsoNormal>       .addJoints(new HAnimJointObject().setUSE("hanim_l_ankle"))</p><p class=MsoNormal>[etc.]</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>> *From: *John Carlson <mailto:yottzumm@gmail.com></p><p class=MsoNormal>> *Sent: *Saturday, March 17, 2018 12:41 AM</p><p class=MsoNormal>> *To: *x3d-public@web3d.org <mailto:x3d-public@web3d.org></p><p class=MsoNormal>> *Subject: *HAnim X3DJSAIL question. Adding joint to humanoid.</p><p class=MsoNormal>> </p><p class=MsoNormal>> HAnimHumanoid14.addSkin(HAnimJoint15)</p><p class=MsoNormal>> </p><p class=MsoNormal>> What is the correct method for adding a joint to a humanoid?  Source not attached because of size.    There may not be a way to do this in X3D 3.3.  I am not sure.  I will get around to checking the object model eventually, but if anyone knows without looking.  It probably has something to do with the field the joint goes in, like skin, etc.</p><p class=MsoNormal>> </p><p class=MsoNormal>> John</p><p class=MsoNormal>> </p><p class=MsoNormal>> $ python NancyNativeTags.py</p><p class=MsoNormal>> </p><p class=MsoNormal>> Traceback (most recent call last):</p><p class=MsoNormal>> </p><p class=MsoNormal>>    File "NancyNativeTags.py", line 624, in <module></p><p class=MsoNormal>> </p><p class=MsoNormal>>      HAnimHumanoid14.addSkin(HAnimJoint15)</p><p class=MsoNormal>> </p><p class=MsoNormal>>    File "jnius\jnius_export_class.pxi", line 906, in jnius.JavaMultipleMethod.__call__ (jnius\jnius.c:29116)</p><p class=MsoNormal>> </p><p class=MsoNormal>>    File "jnius\jnius_export_class.pxi", line 638, in jnius.JavaMethod.__call__ (jnius\jnius.c:25527)</p><p class=MsoNormal>> </p><p class=MsoNormal>>    File "jnius\jnius_export_class.pxi", line 715, in jnius.JavaMethod.call_method (jnius\jnius.c:26510)</p><p class=MsoNormal>> </p><p class=MsoNormal>>    File "jnius\jnius_utils.pxi", line 93, in jnius.check_exception (jnius\jnius.c:4618)</p><p class=MsoNormal>> </p><p class=MsoNormal>> jnius.JavaException: JVM exception occurred: X3DNode newValue is not instanceof acceptableNodeTypes Group|Transform|Shape|IndexedFaceSet; newValue=org.web3d.x3d.jsail.HAnim.HAnimJointObject@24111ef1</p><p class=MsoNormal>> </p><p class=MsoNormal>> </p><p class=MsoNormal>> </p><p class=MsoNormal>> _______________________________________________</p><p class=MsoNormal>> x3d-public mailing list</p><p class=MsoNormal>> x3d-public@web3d.org</p><p class=MsoNormal>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org</p><p class=MsoNormal>> </p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>all the best, Don</p><p class=MsoNormal>-- </p><p class=MsoNormal>Don Brutzman  Naval Postgraduate School, Code USW/Br       brutzman@nps.edu</p><p class=MsoNormal>Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA   +1.831.656.2149</p><p class=MsoNormal>X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman</p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p></div></body></html>