[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