[x3d-public] List of Differences between Spec and X3DUOM

John Carlson yottzumm at gmail.com
Thu Nov 2 09:02:22 PDT 2023


Note that HAnimHumanoid.joints is OK in Schema/X3DUOM/Spec, AFAIK.  It’s
HAnimMotion.joints that there’s an issue with between schema and spec.

I know, very confusing!

On Thu, Nov 2, 2023 at 10:33 AM John Carlson <yottzumm at gmail.com> wrote:

> Here are specific HAnimMotion differences from Spec present in X3DUOM, but
> you really want to change XML Schema (see type= changes, below).  This is
> critical for VRML generation based on X3DUOM.
>
> Thanks!
>
> John
>
>        <ConcreteNode name="HAnimMotion">
>           <InterfaceDefinition specificationUrl="
> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/components/hanim.html#HAnimMotion
> "
> -                               appinfo="An HAnimMotion node supports
> discrete frame-by-frame playback for H-Anim motion data animation.">
> +                               appinfo="An HAnimMotion node supports
> discrete frame-by-frame playback for HAnim motion data animation.">
>              <componentInfo name="HAnim" level="2"/>
>              <Inheritance baseType="X3DChildNode"/>
>              <field name="channels"
> -                    type="MFString"
> +                    type="SFString"
>                      accessType="inputOutput"
>                      description="list of number of channels for
> transformation, followed by transformation type of each channel of data."/>
>              <field name="channelsEnabled"
> @@ -22515,7 +22520,8 @@
>              <field name="frameCount"
>                      type="SFInt32"
>                      accessType="outputOnly"
> -                    minInclusive="0"/>
> +                    minInclusive="0"
> +                    description="frameCount is computed at run time and
> indicates the total number of frames present in the animation, equaling the
> number of sets of channel data rows present in the values array."/>
>              <field name="frameDuration"
>                      type="SFTime"
>                      accessType="inputOutput"
> @@ -22540,7 +22546,7 @@
>                      acceptableNodeTypes="IS"
>                      inheritedFrom="X3DNode"/>
>              <field name="joints"
> -                    type="MFString"
> +                    type="SFString"
>                      accessType="inputOutput"
>                      description="joints field lists names of joints that
> raw motion data is to be applied to."/>
>
> On Thu, Nov 2, 2023 at 10:23 AM John Carlson <yottzumm at gmail.com> wrote:
>
>>
>> I too would like to see motionsEnabled added to X3DUOM and schema.
>>
>> I’ve noticed some fieldType differences, particularly in HAnimMotion,
>> joints field and channels field, previously reported, but not in Holger's
>> list. You may want to double check your script, if any, Holger.
>>
>> Thanks,
>>
>> John
>>
>> On Wed, Nov 1, 2023 at 5:21 PM Brutzman, Donald (Don) (CIV) <
>> brutzman at nps.edu> wrote:
>>
>>> Wow, thanks Holger!  Super helpful.
>>>
>>>
>>>
>>> Am expecting that a lot of the repetitions are recurring due to
>>>  mistake(s) in abstract types, which get inherited by concrete nodes.
>>>
>>>
>>>
>>> Will check and report back.
>>>
>>>
>>>
>>> all the best, Don
>>>
>>> --
>>>
>>> Don Brutzman  Naval Postgraduate School, Code USW/Br
>>> brutzman at nps.edu
>>>
>>> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
>>> +1.831.656.2149
>>>
>>> X3D graphics, virtual worlds, navy robotics
>>> https://faculty.nps.edu/brutzman
>>>
>>>
>>>
>>> *From:* Holger Seelig <holger.seelig at yahoo.de>
>>> *Sent:* Wednesday, November 1, 2023 2:56 PM
>>> *To:* X3D <x3d-public at web3d.org>
>>> *Cc:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
>>> *Subject:* List of Differences between Spec and X3DUOM
>>>
>>>
>>>
>>> I have compared the specification from proof with X3DUOM and found a lot
>>> of differences of field values, number of fields, and access type. I have
>>> double checked all issues from:
>>>
>>>
>>>
>>>
>>> https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4-IS.proof/Part01/Architecture.html
>>>
>>> https://www.web3d.org/specifications/X3dUnifiedObjectModel-4.0.xml
>>>
>>>
>>>
>>> My guess is that a lot of issues are correct in X3DUOM, but as far as I
>>> can see, not all.
>>>
>>>
>>>
>>> The list still misses Sound component.
>>>
>>> Below is the list of differences:
>>>
>>>
>>>
>>> Field 'solid' in node IndexedQuadSet has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node QuadSet has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> ComposedCubeMapTexture number of fields differ (Spec <=> X3DUOM): 9 <=>
>>> 8.
>>>
>>>   Where [textureProperties] not in X3DUOM.
>>>
>>> Field 'size' in node GeneratedCubeMapTexture has different access type
>>> (Spec <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node ArcClose2D has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node Disk2D has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'size' in node Rectangle2D has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node Rectangle2D has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node TriangleSet2D has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'size' in node Box has different access type (Spec <=> X3DUOM):
>>> initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node Box has different access type (Spec <=> X3DUOM):
>>> initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node Cone has different access type (Spec <=> X3DUOM):
>>> initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node Cylinder has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field SFInt32 'xDimension' in node ElevationGrid has different value
>>> (Spec <=> X3DUOM): 0 !== 2.
>>>
>>> Field SFInt32 'zDimension' in node ElevationGrid has different value
>>> (Spec <=> X3DUOM): 0 !== 2.
>>>
>>> Field 'solid' in node ElevationGrid has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field MFFloat 'height' in node ElevationGrid has different value (Spec
>>> <=> X3DUOM):  !== 0 0 0 0.
>>>
>>> Field 'solid' in node Extrusion has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'orientation' in node Extrusion has different access type (Spec
>>> <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'scale' in node Extrusion has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node IndexedFaceSet has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node Sphere has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'set_height' in node GeoElevationGrid has different type (Spec <=>
>>> X3DUOM): MFDouble !== MFFloat.
>>>
>>> Field SFInt32 'xDimension' in node GeoElevationGrid has different value
>>> (Spec <=> X3DUOM): 0 !== 2.
>>>
>>> Field SFInt32 'zDimension' in node GeoElevationGrid has different value
>>> (Spec <=> X3DUOM): 0 !== 2.
>>>
>>> Field 'solid' in node GeoElevationGrid has different access type (Spec
>>> <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field MFDouble 'height' in node GeoElevationGrid has different value
>>> (Spec <=> X3DUOM): 0, 0 !== 0 0 0 0.
>>>
>>> Field SFFloat 'fieldOfView' in node GeoViewpoint has different value
>>> (Spec <=> X3DUOM): 0.785398 !== 0.7854.
>>>
>>> Field 'coordIndex' in node HAnimDisplacer has different access type
>>> (Spec <=> X3DUOM): inputOutput !== initializeOnly.
>>>
>>> HAnimHumanoid number of fields differ (Spec <=> X3DUOM): 31 <=> 30.
>>>
>>>   Where [motionsEnabled] not in X3DUOM.
>>>
>>> HAnimMotion number of fields differ (Spec <=> X3DUOM): 20 <=> 18.
>>>
>>>   Where [next,previous] not in X3DUOM.
>>>
>>> Field 'closed' in node SplinePositionInterpolator has different access
>>> type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
>>>
>>> Field 'closed' in node SplinePositionInterpolator2D has different access
>>> type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
>>>
>>> Field 'closed' in node SplineScalarInterpolator has different access
>>> type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
>>>
>>> Unknown field 'closed' of node SquadOrientationInterpolator in X3DUOM.
>>>
>>> Field 'order' in node LayerSet has different access type (Spec <=>
>>> X3DUOM): inputOutput !== initializeOnly.
>>>
>>> ScreenFontStyle number of fields differ (Spec <=> X3DUOM): 10 <=> 9.
>>>
>>>   Where [style] not in X3DUOM.
>>>
>>> Field 'radius' in node PointLight has different access type (Spec <=>
>>> X3DUOM): inputOutput !== initializeOnly.
>>>
>>> Field 'radius' in node SpotLight has different access type (Spec <=>
>>> X3DUOM): inputOutput !== initializeOnly.
>>>
>>> Field 'knot' in node NurbsOrientationInterpolator has different access
>>> type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
>>>
>>> Field 'solid' in node NurbsPatchSurface has different access type (Spec
>>> <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'knot' in node NurbsPositionInterpolator has different access type
>>> (Spec <=> X3DUOM): inputOutput !== initializeOnly.
>>>
>>> Field 'solid' in node NurbsSweptSurface has different access type (Spec
>>> <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node NurbsSwungSurface has different access type (Spec
>>> <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node NurbsTrimmedSurface has different access type
>>> (Spec <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'fieldOfView' in node OrthoViewpoint has different type (Spec <=>
>>> X3DUOM): MFFloat !== SFVec4f.
>>>
>>> Field SFFloat 'fieldOfView' in node Viewpoint has different value (Spec
>>> <=> X3DUOM): 0.785398 !== 0.7854.
>>>
>>> Field SFFloat 'angle' in node ConeEmitter has different value (Spec <=>
>>> X3DUOM): 0.785398 !== 0.7854.
>>>
>>> Field 'color' in node ParticleSystem has different type (Spec <=>
>>> X3DUOM): SFNode !== MFNode.
>>>
>>> SurfaceEmitter number of fields differ (Spec <=> X3DUOM): 7 <=> 9.
>>>
>>>   Where [coordIndex,set_coordIndex] not in Spec.
>>>
>>> Field SFRotation 'axisRotation' in node PlaneSensor has different value
>>> (Spec <=> X3DUOM): 0 0 1 0 !== 0 1 0 0.
>>>
>>> Field 'solid' in node IndexedTriangleFanSet has different access type
>>> (Spec <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node IndexedTriangleSet has different access type (Spec
>>> <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node IndexedTriangleStripSet has different access type
>>> (Spec <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node TriangleFanSet has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node TriangleSet has different access type (Spec <=>
>>> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'solid' in node TriangleStripSet has different access type (Spec
>>> <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'body2Axis' in node UniversalJoint has different type (Spec <=>
>>> X3DUOM): SFVec3f !== SFFloat.
>>>
>>> Field 'name' in node FloatVertexAttribute has different access type
>>> (Spec <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'name' in node Matrix3VertexAttribute has different access type
>>> (Spec <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Field 'name' in node Matrix4VertexAttribute has different access type
>>> (Spec <=> X3DUOM): initializeOnly !== inputOutput.
>>>
>>> Appearance number of fields differ (Spec <=> X3DUOM): 12 <=> 11.
>>>
>>>   Where [backMaterial] not in X3DUOM.
>>>
>>> FontStyle number of fields differ (Spec <=> X3DUOM): 10 <=> 9.
>>>
>>>   Where [style] not in X3DUOM.
>>>
>>> Field 'solid' in node Text has different access type (Spec <=> X3DUOM):
>>> initializeOnly !== inputOutput.
>>>
>>> Field SFFloat 'fieldOfView' in node TextureProjector has different value
>>> (Spec <=> X3DUOM): 0.785398 !== 0.7854.
>>>
>>> TextureProjectorParallel number of fields differ (Spec <=> X3DUOM): 20
>>> <=> 16.
>>>
>>>   Where [upVector,shadowColor,shadowBias,shadowMapSize] not in X3DUOM.
>>>
>>> TextureTransform number of fields differ (Spec <=> X3DUOM): 6 <=> 5.
>>>
>>>   Where [mapping] not in X3DUOM.
>>>
>>> TextureTransform3D number of fields differ (Spec <=> X3DUOM): 6 <=> 5.
>>>
>>>   Where [mapping] not in X3DUOM.
>>>
>>> TextureTransformMatrix3D number of fields differ (Spec <=> X3DUOM): 3
>>> <=> 2.
>>>
>>>   Where [mapping] not in X3DUOM.
>>>
>>> Test done.
>>>
>>>
>>>
>>> --
>>>
>>> Holger Seelig
>>>
>>> Leipzig, Germany
>>>
>>>
>>>
>>> holger.seelig at yahoo.de
>>>
>>> https://create3000.github.io/x_ite/
>>>
>>>
>>> _______________________________________________
>>> x3d-public mailing list
>>> x3d-public at web3d.org
>>> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20231102/e4a9737a/attachment-0001.html>


More information about the x3d-public mailing list