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

John Carlson yottzumm at gmail.com
Tue Oct 7 13:11:15 PDT 2025


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/20251007/0258061d/attachment-0001.html>


More information about the x3d-public mailing list