[x3d-public] Isolating problems with HAnimHumanoid.java and X3DUOM, etc.

John Carlson yottzumm at gmail.com
Mon Jun 24 17:03:06 PDT 2024


Lighthearted tech humor.

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?

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.

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.

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.

Now, let’s do it the right way.  I’m guessing someone is already doing that!

John

On Mon, Jun 24, 2024 at 3:37 PM Joe D Williams <joedwil at earthlink.net>
wrote:

>
> Humanoid does not show the add/remove children field because no
> general-purpose nodes wanted
>
> only the listed ones, but all is alive and available.
>
> Thanks,
>
> Joe
>
>
>
>
>
> -----Original Message-----
> From: John Carlson <yottzumm at gmail.com>
> Sent: Jun 24, 2024 2:47 AM
> To: Joe D Williams <joedwil at earthlink.net>, Michalis Kamburelis <
> michalis.kambi at gmail.com>, X3D Graphics public mailing list <
> x3d-public at web3d.org>
> Subject: Re: Isolating problems with HAnimHumanoid.java and X3DUOM, etc.
>
>
> Weird, sorry, I thought I didn’t send this message.
>
> On Mon, Jun 24, 2024 at 3:58 AM John Carlson <yottzumm at gmail.com> wrote:
>
>> The beginning of actually solving the problem.
>>
>> HAnimHumanoid.java:
>>
>> This is WRONG!
>>
>> public static final String containerField_DEFAULT_VALUE = "children"; //
>> type xs:NMTOKEN
>>
>> This is WRONG!
>>
>> containerField_ALLOWED_VALUES = new String[] { "children" }; // type
>> xs:NMTOKEN
>>
>> X3DUOM:
>>
>> <ConcreteNode name="HAnimHumanoid">
>> [ snip ]
>> <!-- THIS IS WRONG! -->
>> <containerField default="children" type="xs:NMTOKEN"/>
>> [ snip ]
>>       </ConcreteNode>
>>
>> [ There's NO children field here!--And that may be ok! ]
>>
>> 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
>>
>> }
>>
>> ======================================================
>> Here's containerField for Group in X3DUOM. HAnimHumanoid needs something
>> like this.
>>
>>             <containerField default="children"
>>
>>             type="containerFieldChoicesGroupLODShapeTransformSwitch"/>
>>
>> [ refers to: ]
>>
>>       <SimpleType name="containerFieldChoicesGroupLODShapeTransformSwitch"
>>                   baseType="xs:NMTOKEN"
>>
>> appinfo="containerFieldChoicesGroupLODShapeTransformSwitch lists the
>> allowed containerField enumeration values for Shape, Transform and LOD
>> nodes: "children" if parent node has abstract type X3DGroupingNode,
>> otherwise "metadata" default."
>>                   documentation="
>> https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#containerField
>> ">
>>          <enumeration value="children"
>>                       appinfo="parent node has abstract type
>> X3DGroupingNode"/>
>>          <enumeration value="proxy" appinfo="parent node is Collision"/>
>>          <enumeration value="rootNode" appinfo="parent node is GeoLOD"/>
>>          <enumeration value="shape" appinfo="parent node is CADFace or
>> CollidableShape"/>
>>          <enumeration value="skin" appinfo="parent node is
>> HAnimHumanoid"/>
>>       </SimpleType>
>> ======================================================
>>
>> We need something like:
>>
>> <SimpleType name="containerFieldChoicesHAnimHumanoid"
>>
>> with enumerations, then refer to the node in the HAnimHumanoid type.
>>
>> Have I isolated the problem, or do I need to step into X3D Schema?
>>
>> Hmm?  Do we need a default container field for HAnimHumanoid?  Can we
>> leave off a default?
>>
>> I don't want to program XML, no thanks!
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20240624/c1d1f7c0/attachment.html>


More information about the x3d-public mailing list