[x3d-public] [x3d] TextureTransform* node inheritance problems in X3DUOM need correction to X3DSingleTextureTransformNode

John Carlson yottzumm at gmail.com
Wed Oct 8 01:07:56 PDT 2025


Okay, awake, and motivation is kicking in.

Tasks:

1. Download latest X3DUOM, overwrite my changes.

2.  Double check that needed changes are present in X3DUOM

3. Copy X3DUOM to working folder

4. Merge X3DUOM with X_ITE UOM

5. Create JSON schemas, fieldTypes.js and mapToMethod.js.

6.  Create any needed JSON files to test MultiTextureTransform.

7.  Copy schemas and test files to x3dvalidate repository.

8. Test.

9.  Report Success/Failure.

10.  Validate the entire archive.

11.  Make a decision whether to report more potential issues or not.
Ignore flagged files.

12.  Check-in and publish.

If anyone is interested in my UOM merger, let me know.  It’s written in
Python.

On Tue, Oct 7, 2025 at 3:11 PM John Carlson <yottzumm at gmail.com> wrote:

> Okay.  I will see how the change affects JSON schema.  I will be
> validating Aaron’s models as well.  Should be fun!
>
> But first I get some sleep!
>
> Thanks a bunch!
>
> John
> On Tue, Oct 7, 2025 at 3:02 PM Don Brutzman <don.brutzman at gmail.com>
> wrote:
>
>> Shifting this conversation to x3d-public from x3d (member-only) mailing
>> list.  Original thread:
>>
>>    - [x3d] Zoom meeting to discuss inheritance in TextureTransforms
>>    -
>>    https://www.web3d.org/mailman/private/x3d_web3d.org/2025-October/008869.html
>>
>> Problem summary:  X3D 4.0 introduced X3DSingleTextureTransformNode as an
>> intermediate interface for three nodes.  This was not reflected in X3D XML
>> Schema appinfo and X3DUOM.
>>
>> The thread below indicates problems with interface mismatch for three
>> nodes:
>>         |  -+- TextureTransform
>>         |   +- TextureTransformMatrix3D
>>         |   +- TextureTransform3D
>>
>> Background details: X3D version 4.0 introduced a new intermediate
>> interface X3DSingleTextureTransformNode between these nodes and the
>> parent interface X3DTextureTransformNode.
>>
>> This change was not reflected in X3D XML Schema inheritance appinfo,
>> which left X3D Unified Object Model (X3DUOM) out of date for version 4.0.
>> Now corrected.
>>
>>    - X3D XML Schema update activity:
>>    - https://www.web3d.org/specifications/x3d-schema-changelog.txt
>>    - 7 OCT 2025, carlson, brutzman
>>
>> - (v4.0) X3D version 4.0 introduced a new intermediate interface
>> X3DSingleTextureTransformNode.
>>   Correct annotations for TextureTransform, TextureTransformMatrix3D,
>> TextureTransform3D
>>   to inherit X3DSingleTextureTransformNode vice X3DTextureTransformNode.
>>   Similarly remove 'mapping' field from these three nodes, since that
>> field
>>   is defined as part of X3DSingleTextureTransformNode.
>>   TODO: update X3D XML Schema documentation using Altova XMLSpy.
>>
>>
>> X3D XML Schema changes and X3DUOM changes visible at
>>
>>    - SourceForge x3d revision,
>>    - https://sourceforge.net/p/x3d/code/37586/
>>
>> Applied and tested changes by rebuilding and releasing X3DJSAIL.
>>
>>    - X3D Java Scene Access Interface Library (X3DJSAIL)
>>    - X3D Java Scene Access Interface Library (X3DJSAIL) supports
>>    programmers with standards-based X3D Java interfaces and objects, all as
>>    open source.
>>    - https://www.web3d.org/specifications/java/X3DJSAIL.html
>>
>> Incidentally, while troubleshooting, I found a previously overlooked bug
>> in X3DJSAIL deployment.  Updated Javadoc was not getting uploaded to the
>> correct directory.  Now fixed.
>>
>> Confirmation of changed interfaces for these three nodes can be found at
>>
>>    - X3DJSAIL Javadoc, Interface X3DSingleTextureTransformNode
>>    -
>>    https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/sai/Texturing/X3DSingleTextureNode.html
>>
>> John, rather than creating a new ticket on sourceforge, I clarified and
>> updated your other ticket.
>>
>>    - ticket #72, X3DUOM inheritance for three texture-transform nodes
>>    needs to be X3DSingleTextureTransformNode
>>    - (renamed from  X3DUOM please take action!
>>    <https://sourceforge.net/p/x3d/tickets/72/>)
>>    - https://sourceforge.net/p/x3d/tickets/72/
>>
>> Again thanks for detecting and reporting this complex issue, glad we have
>> it fixed.
>>
>> Have fun with X3D!  😀
>>
>> all the best, Don
>> --
>> X3D Graphics, Maritime Robotics, Distributed Simulation
>> Relative Motion Consulting  https://RelativeMotion.info
>>
>>
>> On Tue, Oct 7, 2025 at 11:37 AM Don Brutzman <don.brutzman at gmail.com>
>> wrote:
>>
>>> I am shifting this conversation to x3d-public mailing list since
>>> potential impact is broad.
>>>
>>> Summary:  X3D 4.0 introduced X3DSingleTextureTransformNode as an
>>> intermediate interface for three nodes.  This was not reflected in X3D XML
>>> Schema appinfo and X3DUOM.  Corrections are needed.
>>>
>>> all the best, Don
>>> --
>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>> Relative Motion Consulting  https://RelativeMotion.info
>>>
>>>
>>> On Tue, Oct 7, 2025 at 9:50 AM John Carlson <yottzumm at gmail.com> wrote:
>>>
>>>> Please do create a ticket.  Thanks!
>>>>
>>>> Feel free to copy and paste my text into the ticket.
>>>>
>>>> I have not looked at XML schema in-depth.  Probably there’s some issue
>>>> with how X3DUOM is created, if the XML schema follows the specification.
>>>>
>>>> Perhaps the question becomes, should a MultiTextureTransform be able to
>>>> contain another MultiTextureTransform in the textureTransform field?
>>>>
>>>> John
>>>>
>>>> On Tue, Oct 7, 2025 at 11:38 AM Don Brutzman <don.brutzman at gmail.com>
>>>> wrote:
>>>>
>>>>> Thanks for the well-defined, in-depth trouble report.  I look forward
>>>>> to following your points in detail by checking X3DUOM, and then the
>>>>> originating X3D XML Schema, where information about inheritance
>>>>> relationships is captured.  The X3D Architecture specification of course
>>>>> remains authoritative, and X3DUOM is a reflection of those relationships.
>>>>>
>>>>>    - X3D Architecture, draft v4.1, clause 18 Texturing component,
>>>>>    18.3 Abstract types
>>>>>    -
>>>>>    https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/components/texturing.html#AbstractTypes
>>>>>
>>>>> The following specification diagram is also helpful, reference and
>>>>> excerpt here:
>>>>>
>>>>>    - X3D Architecture, draft v4.1, clause 4 Concepts, 4.4.2.3
>>>>>    Interface hierarchy
>>>>>    -
>>>>>    https://www.web3d.org/specifications/X3Dv4Draft/ISO-IEC19775-1v4.1-CD/Part01/concepts.html#InterfaceHierarchy
>>>>>
>>>>>         +- X3DAppearanceChildNode -+- AcousticProperties
>>>>>         |                          +- FillProperties
>>>>>         |                          [...]
>>>>>         |                          |
>>>>>         |                          +- X3DTextureNode -+- MultiTexture
>>>>>         |                          |                  |
>>>>>         |                          |                  + X3DSingleTextureNode -+- X3DEnvironmentTextureNode -+- ComposedCubeMapTexture
>>>>>         |                          |                                          |                             +- GeneratedCubeMapTexture
>>>>>         |                          |                                          |                             +- ImageCubeMapTexture (X3DUrlObject)*
>>>>>         |                          |                                          |
>>>>>         |                          |                                          +- X3DTexture2DNode -+- ImageTexture (X3DUrlObject)*
>>>>>         |                          |                                          |                    +- MovieTexture (X3DSoundSourceNode, X3DUrlObject)*
>>>>>         |                          |                                          |                    +- PixelTexture
>>>>>         |                          |                                          |
>>>>>         |                          |                                          +- X3DTexture3DNode -+- ComposedTexture3D
>>>>>         |                          |                                                               +- ImageTexture3D (X3DUrlObject)*
>>>>>         |                          |                                                               +- PixelTexture3D
>>>>>         |                          |
>>>>>         |                          |
>>>>>         |                          +- X3DTextureTransformNode  +- MultiTextureTransform
>>>>>         |                                                      +- X3DSingleTextureTransformNode -+- TextureTransform
>>>>>         |                                                                                        +- TextureTransformMatrix3D
>>>>>         |                                                                                        +- TextureTransform3D
>>>>>
>>>>>
>>>>> For now this issue is best handled as a trouble ticket - you are
>>>>> welcome to create it, or I can.  Again thanks.
>>>>>
>>>>>    - SourceForge: X3D Trouble Tickets
>>>>>    - https://sourceforge.net/p/x3d/tickets/
>>>>>
>>>>> all the best, Don
>>>>> --
>>>>> X3D Graphics, Maritime Robotics, Distributed Simulation
>>>>> Relative Motion Consulting  https://RelativeMotion.info
>>>>>
>>>>>
>>>>> On Tue, Oct 7, 2025 at 2:38 AM John Carlson <yottzumm at gmail.com>
>>>>> wrote:
>>>>>
>>>>>> First off, I don't see a problem with the specification!
>>>>>>
>>>>>> The inheritance in X3DUOM for these 3 nodes needs to be investigated.
>>>>>>
>>>>>> TextureTransform
>>>>>> TextureTransform3D
>>>>>> TextureTransformMatrix3D
>>>>>>
>>>>>> Specifically I would like to additionally inherit from
>>>>>>
>>>>>> X3DSingleTextureTransformNode
>>>>>>
>>>>>> See details below:
>>>>>>
>>>>>> TextureTransform : X3DSingleTextureTransformNode {
>>>>>>   SFVec2f  [in,out] center      0 0  (-∞,∞)
>>>>>>   SFString [in,out] mapping     ""
>>>>>>   SFNode   [in,out] metadata    NULL [X3DMetadataObject]
>>>>>>   SFFloat  [in,out] rotation    0    (-∞,∞)
>>>>>>   SFVec2f  [in,out] scale       1 1  (-∞,∞)
>>>>>>   SFVec2f  [in,out] translation 0 0  (-∞,∞)
>>>>>> }
>>>>>>
>>>>>>
>>>>>> TextureTransform3D : X3DSingleTextureTransformNode {
>>>>>>   SFVec3f    [in,out] center      0 0 0   (-∞,∞)
>>>>>>   SFString   [in,out] mapping     ""
>>>>>>   SFNode     [in,out] metadata    NULL    [X3DMetadataObject]
>>>>>>   SFRotation [in,out] rotation    0 0 1 0 (-∞,∞)
>>>>>>   SFVec3f    [in,out] scale       1 1 1   (-∞,∞)
>>>>>>   SFVec3f    [in,out] translation 0 0 0   (-∞,∞)
>>>>>> }
>>>>>>
>>>>>> TextureTransformMatrix3D : X3DSingleTextureTransformNode {
>>>>>>   SFString   [in,out] mapping     ""
>>>>>>   SFMatrix4f [in,out] matrix      1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1  (-∞,∞)
>>>>>>   SFNode     [in,out] metadata    NULL    [X3DMetadataObject]
>>>>>> }
>>>>>>
>>>>>> X3DSingleTextureTransformNode : X3DTextureTransformNode {
>>>>>>   SFString [in,out] mapping  ""
>>>>>>   SFNode   [in,out] metadata NULL [X3DMetadataObject]
>>>>>> }
>>>>>>
>>>>>> Apparently, the TextureTransform nodes DO
>>>>>>
>>>>>> inherit from X3DTextureTransformNode in X3DUOM, but currently,
>>>>>>
>>>>>>  MultiTextureTransform has a field, textureTransform, which requires an
>>>>>>
>>>>>> X3DSingleTextureTransformNode
>>>>>>
>>>>>>
>>>>>> So in X3DUOM, either additional inheritance needs to be added,
>>>>>>
>>>>>> or the acceptableNodeTypes needs to include the super type,
>>>>>>
>>>>>> X3DSingleTextureTransformNode.
>>>>>>
>>>>>>
>>>>>> John
>>>>>>
>>>>>> _______________________________________________
>>>>>> x3d mailing list
>>>>>> x3d at web3d.org
>>>>>> http://web3d.org/mailman/listinfo/x3d_web3d.org
>>>>>>
>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20251008/a2a33c87/attachment-0001.html>


More information about the x3d-public mailing list