<div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div>1. add motionsEnabled to HAnimHumanoid</div><div><br></div><div>2, change HAnimMotion.channels field type to SFString</div><div><br></div><div>3. change HAnimMotion.joints field type to SFString</div><div><br></div><div>Note that the latter two are required for VRML to differentiate between arrays and strings.  Per x3d.py output not being accepted by browsers.</div><div><h3 style="font-size:19.2px;margin-top:14px;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimHumanoid">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimHumanoid</a></h3><h3 style="font-size:19.2px;margin-top:14px;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif"><br></h3><h3 style="font-size:19.2px;margin-top:14px;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">26.3.2 HAnimHumanoid</h3><pre class="gmail-node" style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px">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><pre class="gmail-node" style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px"><br></pre><pre class="gmail-node" style="margin-left:25px"><font color="#000000"><span style="font-size:11.05px"><br></span></font></pre><pre class="gmail-node" style="margin-left:25px"><font color="#000000"><span style="font-size:11.05px"><br></span></font></pre><pre class="gmail-node" style="margin-left:25px"><font color="#000000"><span style="font-size:11.05px"><a href="https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimMotion">https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimMotion</a><br></span></font></pre></div><div><h2 style="font-size:20.8px;margin-top:18px;color:rgb(0,0,0);font-family:Verdana,Arial,Helvetica,sans-serif">26.3.4 HAnimMotion</h2><pre class="gmail-node" style="color:rgb(0,0,0);font-size:11.05px;margin-left:25px">HAnimMotion : X3DChildNode {
  SFBool   [in]     next
  SFBool   [in]     previous
  SFString [in,out] channels         ""
  MFBool   [in,out] channelsEnabled  []
  SFString [in,out] description      ""
  SFBool   [in,out] enabled          TRUE
  SFInt32  [in,out] endFrame         0      [0,∞)
  SFTime   [in,out] frameDuration    0.1    (0,∞)
  SFInt32  [in,out] frameIncrement   1      (-∞,∞)
  SFInt32  [in,out] frameIndex       0      [0,∞)
  SFString [in,out] joints           ""                  
  SFInt32  [in,out] loa              -1     [-1,4]
  SFBool   [in,out] loop             FALSE
  SFNode   [in,out] metadata         NULL   [X3DMetadataObject]
  SFString [in,out] name             ""
  SFInt32  [in,out] startFrame       0      [0,∞)
  MFFloat  [in,out] values           []     (-∞,∞)
  SFTime   [out]    cycleTime               [0,∞)
  SFTime   [out]    elapsedTime             (0,∞)
  SFInt32  [out]    frameCount              [0,∞)
}</pre></div><div>$ diff -c ~/x3d-code/<a href="http://www.web3d.org/specifications/x3d-4.0.xsd">www.web3d.org/specifications/x3d-4.0.xsd</a> /c/x3d-code/<a href="http://www.web3d.org/specifications/x3d-4.0.xsd">www.web3d.org/specifications/x3d-4.0.xsd</a></div><div>*** /c/Users/john/x3d-code/<a href="http://www.web3d.org/specifications/x3d-4.0.xsd">www.web3d.org/specifications/x3d-4.0.xsd</a>     2023-10-31 20:21:30.180107600 -0500</div><div>--- /c/x3d-code/<a href="http://www.web3d.org/specifications/x3d-4.0.xsd">www.web3d.org/specifications/x3d-4.0.xsd</a>        2023-09-22 08:28:03.811239800 -0500</div><div>***************</div><div>*** 5473,5478 ****</div><div>--- 5473,5479 ----</div><div>                        <xs:enumeration value="modulationTypeDetail"/></div><div>                        <xs:enumeration value="modulationTypeSystem"/></div><div>                        <xs:enumeration value="momentsOfInertia"/></div><div>+                       <xs:enumeration value="motionsEnabled"/></div><div>                        <xs:enumeration value="motor1Axis"/></div><div>                        <xs:enumeration value="motor2Axis"/></div><div>                        <xs:enumeration value="motor3Axis"/></div><div>***************</div><div>*** 19561,19566 ****</div><div>--- 19562,19568 ----</div><div>                                        <xs:attribute name="jointBindingRotations" type="MFRotation" default="0 0 1 0"/></div><div>                                        <xs:attribute name="jointBindingScales" type="MFVec3f" default="0 0 0"/></div><div>                                        <xs:attribute name="loa" type="loaType" default="-1"/></div><div>+                                       <xs:attribute name="motionsEnabled" type="MFBool" default=""/></div><div>                                        <xs:attribute name="name" type="xs:NMTOKEN"></div><div>                                                <xs:annotation></div><div>                                                        <xs:appinfo>name attribute is ordinarily required, unless this is a USE node</xs:appinfo>***************</div><div>*** 19730,19736 ****</div><div>                <xs:complexType></div><div>                        <xs:complexContent></div><div>                                <xs:extension base="X3DChildNode"></div><div>!                                       <xs:attribute name="channels" type="MFString"/></div><div>                                        <xs:attribute name="channelsEnabled" type="MFBool"/></div><div>                                        <xs:attribute name="description" type="SFString"/></div><div>                                        <xs:attribute name="enabled" type="SFBool" default="false"/></div><div>--- 19732,19738 ----</div><div>                <xs:complexType></div><div>                        <xs:complexContent></div><div>                                <xs:extension base="X3DChildNode"></div><div>!                                       <xs:attribute name="channels" type="SFString"/></div><div>                                        <xs:attribute name="channelsEnabled" type="MFBool"/></div><div>                                        <xs:attribute name="description" type="SFString"/></div><div>                                        <xs:attribute name="enabled" type="SFBool" default="false"/></div><div>***************</div><div>*** 19756,19762 ****</div><div>                                                        </xs:restriction></div><div>                                                </xs:simpleType></div><div>                                        </xs:attribute></div><div>!                                       <xs:attribute name="joints" type="MFString"/></div><div>                                        <xs:attribute name="loa" type="loaType" default="-1"/></div><div>                                        <xs:attribute name="loop" type="SFBool" default="false"/></div><div>                                        <xs:attribute name="name" type="xs:NMTOKEN"></div><div>--- 19758,19764 ----</div><div>                                                        </xs:restriction></div><div>                                                </xs:simpleType></div><div>                                        </xs:attribute></div><div>!                                       <xs:attribute name="joints" type="SFString"/></div><div>                                        <xs:attribute name="loa" type="loaType" default="-1"/></div><div>                                        <xs:attribute name="loop" type="SFBool" default="false"/></div><div>                                        <xs:attribute name="name" type="xs:NMTOKEN"></div><div>***************</div><div>*** 25843,25846 ****</div><div>                </xs:complexType></div><div>        </xs:element></div><div>        <!--======================================================================--></div><div>! </xs:schema></div><div>\ No newline at end of file</div><div>--- 25845,25848 ----</div><div>                </xs:complexType></div><div>        </xs:element></div><div>        <!--======================================================================--></div><div>! </xs:schema></div></div></div></div></div></div></div>