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

Don Brutzman don.brutzman at gmail.com
Tue Oct 7 13:02:31 PDT 2025


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/7d84a54a/attachment-0001.html>


More information about the x3d-public mailing list