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

Holger Seelig holger.seelig at yahoo.de
Mon Nov 6 03:36:20 PST 2023


Thank you Don for quick change, I run the script again and still found these:

Field 'size' in node ProximitySensor has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
Field 'size' in node TransformSensor has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
Field 'size' in node VisibilitySensor has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
Field SFBool 'solid' in node ArcClose2D has different value (Spec <=> X3DUOM): false !== true.
Field SFBool 'solid' in node Disk2D has different value (Spec <=> X3DUOM): false !== true.
Field SFBool 'solid' in node Rectangle2D has different value (Spec <=> X3DUOM): false !== true.
Field SFBool 'solid' in node TriangleSet2D has different value (Spec <=> X3DUOM): false !== true.
Field 'beginCap' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
Field 'endCap' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
Field 'ccw' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
Field 'convex' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
Field 'creaseAngle' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
Field 'creaseAngle' in node Extrusion has different type (Spec <=> X3DUOM): SFFloat !== SFBool.
Field 'crossSection' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
Field 'orientation' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
Field 'scale' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
Field 'spine' in node Extrusion has different access type (Spec <=> X3DUOM): initializeOnly !== inputOnly.
Field MFDouble 'height' in node GeoElevationGrid has different value (Spec <=> X3DUOM): 0, 0 !== 0 0.
Field 'size' in node GeoProximitySensor has different access type (Spec <=> X3DUOM): inputOutput !== initializeOnly.
Field MFVec3f 'jointBindingPositions' in node HAnimHumanoid has different value (Spec <=> X3DUOM):  !== 0 0 0.
Field MFRotation 'jointBindingRotations' in node HAnimHumanoid has different value (Spec <=> X3DUOM):  !== 0 0 1 0.
Field MFVec3f 'jointBindingScales' in node HAnimHumanoid has different value (Spec <=> X3DUOM):  !== 0 0 0.
Field SFBool 'enabled' in node HAnimMotion has different value (Spec <=> X3DUOM): true !== false.
Field 'joints' in node HAnimMotion has different type (Spec <=> X3DUOM): SFString !== MFString.
Field 'channels' in node HAnimMotion has different type (Spec <=> X3DUOM): SFString !== MFString.
Field 'name' in node FloatVertexAttribute has different type (Spec <=> X3DUOM): SFString !== xs:NMTOKEN.
Field 'name' in node Matrix3VertexAttribute has different type (Spec <=> X3DUOM): SFString !== xs:NMTOKEN.
Field 'name' in node Matrix4VertexAttribute has different type (Spec <=> X3DUOM): SFString !== xs:NMTOKEN.
Field SFBool 'solid' in node Text has different value (Spec <=> X3DUOM): false !== true.

--
Holger Seelig
Leipzig, Germany

holger.seelig at yahoo.de
https://create3000.github.io/x_ite/

> Am 06.11.2023 um 05:38 schrieb Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>:
> 
> Again wow!! and thank you Holger for tremendous work.  Super valuable.
>  
> I have tried to carefully handle each issue and think the results should be pretty clean now.  Results in version control and also online at
>  
> X3D Specifications: Schema and DOCTYPE Validation
> https://www.web3d.org/specifications
>  
> Here are summaries of what I changed and tested.
>  
>  
> X3D Schema (which is used to autogenerate X3DUOM)
>  
> X3D XML Schema update activity:
> https://www.web3d.org/specifications/x3d-schema-changelog.txt
>  
> 5 NOV 2023, seelig, brutzman
> - all solid fields have accessType initializeOnly
> - (4.0) added ComposedCubeMapTexture textureProperties , must follow other textures
> - several size fields have accessType initializeOnly (rather than inputOutput):
>   X3DEnvironmentalSensorNode, Box, GeneratedCubeMapTexture, Rectangle2D
> - ElevationGrid    default values xDimension 0, zDimension 0, height is empty array
> - GeoElevationGrid default values xDimension 0, zDimension 0, height is [0 0]
>   with difference noted as X3D 4.1 erratum in issue tracker under Mantis 1447.
> - GeoElevationGrid set_height has type MFDouble
> - Extrusion fields beginCap, ccw, convex, creaseAngle, crossSection, endCap,
>   orientation, scale, solid, spine have accessType initializeOnly.
> - note fieldOfView default values set to 0.7854 rather than spec value 0.785398
>   in order to avoid false-positive validation errors, also avoid roundoff errors in tools
> - HAnimDisplacer attribute coordIndex has accessType inputOutput
> - added HAnimHumanoid MFBool [in out] motionsEnabled
> - HAnimMotion added next, previous fields
> - SplinePositionInterpolator, SplinePositionInterpolator2D, SplineScalarInterpolator
>   closed field has accessType inputOutput
> - SquadOrientationInterpolator has no closed field
> - LayerSet order field has accessType inputOutput
> - PointLight, SpotLight radius field has accessType inputOutput
> - NurbsOrientationInterpolator, NurbsPositionInterpolator knot field
>   has accessType inputOutput
> - (4.0) OrthoViewpoint fieldOfView has type MFFloat even though SFVec3f is more
>   correct to prevent modeling errors, deficiency recorded as Mantis 1398
> - (4.0) ParticleSystem color field has type SFNode (synonym for prior colorRamp field)
> - SurfaceEmitter has no coordIndex fields, removed
> - CylinderSensor, PlaneSensor field axisRotation default value 0 0 1 0
> - UniversalJoint field body2axis is type SFVec3f
> - X3DVertexAttributeNode, FloatVertexAttribute, Matrix3VertexAttribute Matrix4VertexAttribute
>   field name has accessType inputOutput
> - (4.0) added Appearance backMaterial field
> - (4.0) added TextureTransform, TextureTransform3D, TextureTransformMatrix3D mapping field
>  
>  
> X3D DOCTYPE 3.0..4.0
>  
> X3D DTD update activity:
> https://www.web3d.org/specifications/x3d-dtd-changelog.txt
>  
> 5 NOV 2023, seelig, brutzman
> - (4.0) added ComposedCubeMapTexture textureProperties , must follow other textures
> - ElevationGrid    default values xDimension 0, zDimension 0, height is empty array
> - GeoElevationGrid default values xDimension 0, zDimension 0, height is [0 0]
>   with difference noted as X3D 4.1 erratum in issue tracker under Mantis 1447.
> - note fieldOfView default values set to 0.7854 rather than spec value 0.785398
>   in order to avoid false-positive validation errors, also avoid roundoff errors in tools
> - (4.0) OrthoViewpoint fieldOfView has type MFFloat even though SFVec3f is more
>   correct to prevent modeling errors, deficiency recorded as Mantis 1398
> - SurfaceEmitter has no coordIndex field, removed
> - CylinderSensor, PlaneSensor field axisRotation default value 0 0 1 0
> - (4.0) added TextureTransform3D, TextureTransformMatrix3D mapping field
>  
>  
> Lots of corresponding adjustments to X3D Tooltips, hopefully consistently.
>  
> Extensible 3D (X3D) 4.0 Tooltips
> https://www.web3d.org/x3d/tooltips/X3dTooltips.html
>  
> Things that I was unable to reconcile from your log:
>  
> FontStyle, ScreenFontStyle already have style field OK
> TextureProjectorParallel does not have fields upVector,shadowColor,shadowBias,shadowMapSize
>  
> So, a major step forward.  Much appreciated.  Further double/triple-checking welcome, by anyone.  High-quality X3D validation and tools and libraries and documentation are important.
>  
> Looking ahead: I’ll need some time to further test autogenerated Java X3DJSAIL and Python X3DPSAIL x3d.py libraries.  Will announce when updated., likely another week or two  Am thinking of adding consistent convenience/utility methods (perhaps something like showXMLcontainerFields) to help people gain greater confidence (and better diagnostic possibilities) when serializing a model out to X3D XML form.
>  
> Have fun with high-quality X3D!  8)
>  
> all the best, Don
> -- 
> Don Brutzman  Naval Postgraduate School, Code USW/Br        brutzman at nps.edu <mailto: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 <mailto:holger.seelig at yahoo.de>> 
> Sent: Wednesday, November 1, 2023 2:56 PM
> To: X3D <x3d-public at web3d.org <mailto:x3d-public at web3d.org>>
> Cc: Brutzman, Donald (Don) (CIV) <brutzman at nps.edu <mailto: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 <mailto:holger.seelig at yahoo.de>
> https://create3000.github.io/x_ite/

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20231106/e3593a97/attachment-0001.html>


More information about the x3d-public mailing list