[X3D-Ecosystem] Fwd: RawKee Update - Implemented a companion export script for x3d.py
John Carlson
yottzumm at gmail.com
Wed Mar 5 17:48:28 PST 2025
I will try to check the latest castle-model-viewer and
castle-model-converter. If they ignores the missing joints field, we’re
good.
Also, I will look at joints in X3DUOM to see if the joints field is
required.
John
On Wed, Mar 5, 2025 at 1:41 PM Joe D Williams <joedwil at earthlink.net> wrote:
> Hi John,
>
>
>
> ‘joints’ is that silly field child of Humanoid that lists the Joint nodes
> with a list collection of USE notations.
>
>
>
> ‘joints’ is not a field of skeleton. It is a field of Humanoid.
>
>
>
> So, Humanoid and Joint are nodes while skeleton is a node type
>
> (otherwise called a 'container')
>
> Same as the keyword 'geometry' is a node type and IndexedFaceSet is a node
> name.
>
>
>
> skin is also a container, could be called a node type.
>
>
>
> The node type says what node names can appear in the container.
>
> The node name says what data is in the node.
>
>
>
> So:
>
> There are two container fields for HAnimJoint, ‘skeleton’ (for the first
> one, the root),
> and ‘children’ (default for the rest of the Joint hierarchy).
>
> See, when you look at the Classic, the name of the 'nodetype'
> (containerfield) is the first text and then in the xml it gets to be
> containerfield='nodetype'
>
>
> Done that way to eliminate the need for wrapper tags (maybe called
> container tags) in the xml, if I recall.
>
> In xml, we get an attr rather than a tag; thank goodness for all good
> favors.
>
>
>
> All Fine,
>
> Joe
>
> -----Original Message-----
> From: X3D Ecosystem public discussion <x3d-ecosystem at web3d.org>
> Sent: Mar 5, 2025 10:53 AM
> To: X3D Ecosystem public discussion <x3d-ecosystem at web3d.org>
> Cc: John Carlson <yottzumm at gmail.com>
> Subject: [X3D-Ecosystem] Fwd: RawKee Update - Implemented a companion
> export script for x3d.py
>
>
> Correction.
>
> ---------- Forwarded message ---------
> From: John Carlson <yottzumm at gmail.com>
> Date: Wed, Mar 5, 2025 at 12:44 PM
> Subject: Fwd: [X3D-Ecosystem] RawKee Update - Implemented a companion
> export script for x3d.py
> To: X3D Ecosystem public discussion <x3d-ecosystem at web3d.org>
>
>
> There are three container fields for HAnimJoint, ‘skeleton’, ‘children’
> (default) and ‘joints’. I don’t disagree with Joe.
>
> Until tools ignore the missing joints field, it’s still with us.
>
> John
> On Wed, Mar 5, 2025 at 12:22 PM Joe D Williams <joedwil at earthlink.net>
> wrote:
>
>> Only the first Joint, root, has containerField 'skeleton'
>>
>> All other child Joints are containerField 'children'
>>
>>
>>
>> the keyword 'skeleton' is not a Node, it is a container, a type
>>
>>
>>
>> Classic
>>
>>
>>
>> skeleton [
>> DEF Joe_HumanoidRoot ...Joint ...
>>
>> ]
>>
>>
>>
>> xml
>>
>> <Joint DEF='Joe_HumanoidRoot' ... containerField='skeleton'
>>
>>
>> HAnimHumanoid is a node, not a type.
>>
>>
>>
>> Joe
>>
>>
>>
>> -----Original Message-----
>> From: X3D Ecosystem public discussion <x3d-ecosystem at web3d.org>
>> Sent: Mar 5, 2025 10:06 AM
>> To: John Carlson <yottzumm at gmail.com>
>> Cc: Bergstrom, Aaron <aaron.bergstrom at und.edu>, X3D Ecosystem public
>> discussion <x3d-ecosystem at web3d.org>
>> Subject: Re: [X3D-Ecosystem] RawKee Update - Implemented a companion
>> export script for x3d.py
>>
>>
>>
>> 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.
>>
>>
>>
>> That would make it more portable.
>>
>>
>>
>> *From:* John Carlson <yottzumm at gmail.com>
>> *Sent:* Wednesday, March 5, 2025 11:50 AM
>> *To:* Bergstrom, Aaron <aaron.bergstrom at und.edu>
>> *Cc:* X3D Ecosystem public discussion <x3d-ecosystem at web3d.org>
>> *Subject:* Re: [X3D-Ecosystem] RawKee Update - Implemented a companion
>> export script for x3d.py
>>
>>
>>
>> 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.
>>
>
>>
>>
>>
>> On Wed, Mar 5, 2025 at 10:57 AM Bergstrom, Aaron <aaron.bergstrom at und.edu>
>> wrote:
>>
>>
>>
>> if nType == "HAnimHumanoid":
>>
>> jIdx = -1
>>
>> sIdx = -1
>>
>> for idx in range(len(mNodeList)):
>>
>> if mNodeList[idx] == "joints":
>>
>> jIdx = idx
>>
>> elif mNodeList[idx] == "skeleton":
>>
>> sIdx = idx
>>
>> if sIdx != -1 and jIdx != -1:
>>
>> mNodeList[jIdx] = "skeleton"
>>
>> mNodeList[sIdx] = "joints"
>>
>>
>>
>>
>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-ecosystem_web3d.org/attachments/20250305/285c4521/attachment.html>
More information about the X3D-Ecosystem
mailing list