<div dir="auto">Lighthearted tech humor.</div><div dir="auto"><br></div><div dir="auto">I understand that there’s a HAnimHumanoid.children field in the DOM.  I’m not sure about the scenegraph though…how would you add to it?  Some kind of multiplexing?  The mind boggles at the possibilities.  Also, what does HAnimHumanoid.children field mean on input or output?  Oh, it’s hidden?  You mean in XML, not in X3D JSON.  I doubt if you’d like to see a HAnimHumanoid.children field in VRML either.  Is the children field hidden in VRML as well?</div><div dir="auto"><br></div><div dir="auto">Yes, I’ve seen a children field instead of joints in JSON and VRML.  I fixed those suckers.  Try getting that  VRML children field past castle-model-viewer guards.</div><div dir="auto"><br></div><div dir="auto">Believe me, I made a valiant attempt at smuggling the VRML children field into castle.  The guards turned me back.  Maybe I could now that I had a Pascal refresher.  I’m afraid my pull request would get hot oil poured all over it.</div><div dir="auto"><br></div><div dir="auto">I wouldn’t have even found setContainerFieldOverride if Don hadn’t said it wasn’t in his code.  That’s the real beauty here, Don gave me the workaround.  He’s a genius!  It took me like a week to realize it though.</div><div dir="auto"><br></div><div dir="auto">Now, let’s do it the right way.  I’m guessing someone is already doing that!</div><div dir="auto"><br></div><div dir="auto">John</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 24, 2024 at 3:37 PM Joe D Williams <<a href="mailto:joedwil@earthlink.net">joedwil@earthlink.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="color:rgb(0,0,0);font-family:arial,sans-serif;font-size:12pt"><p style="margin:0.1rem 0;line-height:1.0"><br></p></div>
<p style="margin:0.1rem 0;line-height:1.0">Humanoid does not show the add/remove children field because no general-purpose nodes wanted </p>
<p style="margin:0.1rem 0;line-height:1.0">only the listed ones, but all is alive and available.</p>
<p style="margin:0.1rem 0;line-height:1.0">Thanks,   </p>
<p style="margin:0.1rem 0;line-height:1.0">Joe</p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>

<div style="border-left:1px solid #aaa;box-sizing:border-box;padding:10px 0 10px 15px;margin:0">
<p>-----Original Message-----<br>From: John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>><br>Sent: Jun 24, 2024 2:47 AM<br>To: Joe D Williams <<a href="mailto:joedwil@earthlink.net" target="_blank">joedwil@earthlink.net</a>>, Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com" target="_blank">michalis.kambi@gmail.com</a>>, X3D Graphics public mailing list <<a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a>><br>Subject: Re: Isolating problems with HAnimHumanoid.java and X3DUOM, etc.</p>
<p style="margin:0.1rem 0;line-height:1.0"> </p>
<div dir="auto">Weird, sorry, I thought I didn’t send this message.</div>
<div><br>
<div class="gmail_quote">
<div class="gmail_attr" dir="ltr">On Mon, Jun 24, 2024 at 3:58 AM John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> wrote:</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:#cccccc">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">
<div dir="ltr">The beginning of actually solving the problem.</div>
<div dir="ltr"> </div>
<div dir="ltr">HAnimHumanoid.java:</div>
<div dir="ltr"> </div>
<div>This is WRONG!</div>
<div> </div>
<div dir="ltr">public static final String containerField_DEFAULT_VALUE = "children"; // type xs:NMTOKEN</div>
<div dir="ltr"> </div>
<div>This is WRONG!</div>
<div> </div>
<div>containerField_ALLOWED_VALUES = new String[] { "children" }; // type xs:NMTOKEN</div>
<div> </div>
<div>X3DUOM:</div>
<div> </div>
<div><ConcreteNode name="HAnimHumanoid"></div>
<div>[ snip ]</div>
<div><!-- THIS IS WRONG! --></div>
<div><containerField default="children" type="xs:NMTOKEN"/></div>
<div>[ snip ]</div>
<div>
<div>      </ConcreteNode>  </div>
<div> </div>
<div>[ There's NO children field here!--And that may be ok! ]</div>
<pre style="font-size:11.05px;margin-left:25px;font-family:monospace;color:#000000">HAnimHumanoid : X3DChildNode, X3DBoundedObject {
  SFVec3f    [in,out] center                0 0 0    (-∞,∞)
  SFString   [in,out] description           ""
  SFBool     [in,out] bboxDisplay           FALSE
  MFString   [in,out] info                  []
  MFVec3f    [in,out] jointBindingPositions []       (-∞,∞)
  MFRotation [in,out] jointBindingRotations []       [-1,1] or (-∞,∞)
  MFVec3f    [in,out] jointBindingScales    []       (0,∞)
  MFNode     [in,out] joints                []       [HAnimJoint]
  SFInt32    [in,out] loa                   -1       [-1,4]
  SFNode     [in,out] metadata              NULL     [X3DMetadataObject]
  MFNode     [in,out] motions               []       [HAnimMotion]
  MFBool     [in,out] motionsEnabled        []
  SFString   [in,out] name                  ""
  SFRotation [in,out] rotation              0 0 1 0  [-1,1] or (-∞,∞)
  SFVec3f    [in,out] scale                 1 1 1    (0,∞)
  SFRotation [in,out] scaleOrientation      0 0 1 0  [-1,1] or (-∞,∞)
  MFNode     [in,out] segments              []       [HAnimSegment]
  MFNode     [in,out] sites                 []       [HAnimSite]
  SFString   [in,out] skeletalConfiguration "BASIC"
  MFNode     [in,out] skeleton              []       [HAnimJoint, HAnimSite]
  MFNode     [in,out] skin                  []       [Group, LOD, Shape, Switch, Transform, IndexedFaceSet, IndexedFanSet, IndexedLineSet, IndexedQuadSet, IndexedTriangleSet, IndexedTriangleStripSet]
  SFNode     [in,out] skinBindingCoords     NULL     [Coordinate|CoordinateDouble]
  SFNode     [in,out] skinBindingNormals    NULL     [X3DNormalNode]
  SFNode     [in,out] skinCoord             NULL     [Coordinate|CoordinateDouble]
  SFNode     [in,out] skinNormal            NULL     [X3DNormalNode]
  SFVec3f    [in,out] translation           0 0 0    (-∞,∞)
  SFString   [in,out] version               "2.0"    ["2.0"] 
  MFNode     [in,out] viewpoints            []       [HAnimSite]
  SFBool     [in,out] visible               TRUE
  SFVec3f    []       bboxCenter            0 0 0    (-∞,∞)
  SFVec3f    []       bboxSize              -1 -1 -1 [0,∞) or −1 −1 −1 </pre>
<div><span style="font-size:11.05px;color:#000000">}</span>  </div>
</div>
<div> </div>
<div>======================================================</div>
<div>Here's containerField for Group in X3DUOM. HAnimHumanoid needs something like this.</div>
<div> </div>
<div>            <containerField default="children"                                                                                                                    type="containerFieldChoicesGroupLODShapeTransformSwitch"/></div>
<div> </div>
<div>[ refers to: ]</div>
<div> </div>
<div>
<div>      <SimpleType name="containerFieldChoicesGroupLODShapeTransformSwitch"</div>
<div>                  baseType="xs:NMTOKEN"</div>
<div>                  appinfo="containerFieldChoicesGroupLODShapeTransformSwitch lists the allowed containerField enumeration values for Shape, Transform and LOD nodes: &#34;children&#34; if parent node has abstract type X3DGroupingNode, otherwise &#34;metadata&#34; default."</div>
<div>                  documentation="<a href="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField" rel="noopener" target="_blank">https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField</a>"></div>
<div>         <enumeration value="children"</div>
<div>                      appinfo="parent node has abstract type X3DGroupingNode"/></div>
<div>         <enumeration value="proxy" appinfo="parent node is Collision"/></div>
<div>         <enumeration value="rootNode" appinfo="parent node is GeoLOD"/></div>
<div>         <enumeration value="shape" appinfo="parent node is CADFace or CollidableShape"/></div>
<div>         <enumeration value="skin" appinfo="parent node is HAnimHumanoid"/></div>
<div>      </SimpleType></div>
</div>
<div>======================================================</div>
<div> </div>
<div>We need something like:</div>
<div> </div>
<div><SimpleType name="containerFieldChoicesHAnimHumanoid"</div>
<div> </div>
<div>with enumerations, then refer to the node in the HAnimHumanoid type.</div>
<div> </div>
<div>Have I isolated the problem, or do I need to step into X3D Schema?</div>
<div> </div>
<div>Hmm?  Do we need a default container field for HAnimHumanoid?  Can we leave off a default?</div>
<div> </div>
<div>I don't want to program XML, no thanks!</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>

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