[x3d-public] Here are proposed changes to XML schema to support x3d.py output validation (it's a long story).

John Carlson yottzumm at gmail.com
Wed Nov 1 01:23:32 PDT 2023


1. add motionsEnabled to HAnimHumanoid

2, change HAnimMotion.channels field type to SFString

3. change HAnimMotion.joints field type to SFString

Note that the latter two are required for VRML to differentiate between
arrays and strings.  Per x3d.py output not being accepted by browsers.
https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimHumanoid
26.3.2 HAnimHumanoid

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
}




https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimMotion

26.3.4 HAnimMotion

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,∞)
}

$ diff -c ~/x3d-code/www.web3d.org/specifications/x3d-4.0.xsd /c/x3d-code/
www.web3d.org/specifications/x3d-4.0.xsd
*** /c/Users/john/x3d-code/www.web3d.org/specifications/x3d-4.0.xsd
 2023-10-31 20:21:30.180107600 -0500
--- /c/x3d-code/www.web3d.org/specifications/x3d-4.0.xsd        2023-09-22
08:28:03.811239800 -0500
***************
*** 5473,5478 ****
--- 5473,5479 ----
                        <xs:enumeration value="modulationTypeDetail"/>
                        <xs:enumeration value="modulationTypeSystem"/>
                        <xs:enumeration value="momentsOfInertia"/>
+                       <xs:enumeration value="motionsEnabled"/>
                        <xs:enumeration value="motor1Axis"/>
                        <xs:enumeration value="motor2Axis"/>
                        <xs:enumeration value="motor3Axis"/>
***************
*** 19561,19566 ****
--- 19562,19568 ----
                                        <xs:attribute
name="jointBindingRotations" type="MFRotation" default="0 0 1 0"/>
                                        <xs:attribute
name="jointBindingScales" type="MFVec3f" default="0 0 0"/>
                                        <xs:attribute name="loa"
type="loaType" default="-1"/>
+                                       <xs:attribute name="motionsEnabled"
type="MFBool" default=""/>
                                        <xs:attribute name="name"
type="xs:NMTOKEN">
                                                <xs:annotation>
                                                        <xs:appinfo>name
attribute is ordinarily required, unless this is a USE
node</xs:appinfo>***************
*** 19730,19736 ****
                <xs:complexType>
                        <xs:complexContent>
                                <xs:extension base="X3DChildNode">
!                                       <xs:attribute name="channels"
type="MFString"/>
                                        <xs:attribute
name="channelsEnabled" type="MFBool"/>
                                        <xs:attribute name="description"
type="SFString"/>
                                        <xs:attribute name="enabled"
type="SFBool" default="false"/>
--- 19732,19738 ----
                <xs:complexType>
                        <xs:complexContent>
                                <xs:extension base="X3DChildNode">
!                                       <xs:attribute name="channels"
type="SFString"/>
                                        <xs:attribute
name="channelsEnabled" type="MFBool"/>
                                        <xs:attribute name="description"
type="SFString"/>
                                        <xs:attribute name="enabled"
type="SFBool" default="false"/>
***************
*** 19756,19762 ****
                                                        </xs:restriction>
                                                </xs:simpleType>
                                        </xs:attribute>
!                                       <xs:attribute name="joints"
type="MFString"/>
                                        <xs:attribute name="loa"
type="loaType" default="-1"/>
                                        <xs:attribute name="loop"
type="SFBool" default="false"/>
                                        <xs:attribute name="name"
type="xs:NMTOKEN">
--- 19758,19764 ----
                                                        </xs:restriction>
                                                </xs:simpleType>
                                        </xs:attribute>
!                                       <xs:attribute name="joints"
type="SFString"/>
                                        <xs:attribute name="loa"
type="loaType" default="-1"/>
                                        <xs:attribute name="loop"
type="SFBool" default="false"/>
                                        <xs:attribute name="name"
type="xs:NMTOKEN">
***************
*** 25843,25846 ****
                </xs:complexType>
        </xs:element>

<!--======================================================================-->
! </xs:schema>
\ No newline at end of file
--- 25845,25848 ----
                </xs:complexType>
        </xs:element>

<!--======================================================================-->
! </xs:schema>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20231101/c3026da0/attachment.html>


More information about the x3d-public mailing list