[x3d-public] Wishlist: Java model interface SAI

John Carlson yottzumm at gmail.com
Thu Feb 15 22:27:10 PST 2024


Okay, this one is the first interface that compiles JinLOA4.java. Note that
I've change the return value.  Perhaps the method should be renamed to my
original suggestion.  Now I will adapt to scaling and transforming the
Humanoid.

Hmm. John

package net.coderextreme;

import java.util.List;

public interface X3DRoots {
        List<org.web3d.x3d.jsail.Core.X3D> getRootNodeList();
}



On Thu, Feb 15, 2024 at 11:44 PM John Carlson <yottzumm at gmail.com> wrote:

> Here's a strawman Java interface.  I'm hoping to get Web3D approval to use
> their package namespace.  Note the return value has changed from class
> GeoLOD.  Again, this is NOT for classes inside X3DJSAIL, but rather for
> classes that use instances of HAninHumanoid (among others) for now.  So
> perhaps think of it as something a Script node or class could implement.
> More thought could be applied.
>
> Thanks!
>
> import java.util.List;
>
> interface X3DRoots {
>         List<org.web3d.x3d.sai.Core.X3DNode> getRootNodeList();
>         // reserve getRootNode() for GeoLOD interface.
> }
>
> John
>
> On Thu, Feb 15, 2024 at 11:13 PM John Carlson <yottzumm at gmail.com> wrote:
>
>> This was the only thing I could find on the X3DJSAIL Javadoc index “g”
>> page:
>> https://www.web3d.org/specifications/java/javadoc/org/web3d/x3d/jsail/Geospatial/GeoLOD.html#getRootNodeList()
>>
>> I’m hopeful that an X3DJSAIL interface with this method could be added to
>> X3DJSAIL for X3dToJava.xslt and JavaSerializer.js generated classes to
>> implement, such that I can reach into an HAnimHumanoid scene and find scale
>> field, center fields, as well as translation fields and point fields for
>> rescaling in a standardized fashion.  That is, give me a Java class that
>> implements the interface, and I can find the HAnimHumanoids in the returns
>> with a recursive routine, and I can default scaling and translation in the
>> humanoid.
>>
>> All because of long MF fields which can’t be matched in XML using
>> X3DJSAIL, because of a poorly implemented/tested OpenJDK Pattern class.
>> Plus, I want to generalize my code to handle HAnimHumanoids anywhere in the
>> Java code.
>>
>> I don’t plan on forcing anyone to implement this interface, but I might
>> alter my X3dToJava.xslt and JavaSerializer.js.
>>
>> John
>>
>>
>> On Thu, Feb 15, 2024 at 6:21 PM John Carlson <yottzumm at gmail.com> wrote:
>>
>>> This is part of the x3d execution context, but I don’t know if it’s an
>>> interface or a class.  I am proposing a super interface which doesn’t
>>> require lots of methods to be defined.
>>>
>>>
>>> https://www.web3d.org/documents/specifications/19777-2/V3.0/Part2/functions.html#getRootNodes
>>>
>>> It’s a perfectly good name for the method.
>>>
>>> John
>>>
>>>
>>>
>>> On Thu, Feb 15, 2024 at 5:59 PM John Carlson <yottzumm at gmail.com> wrote:
>>>
>>>> A need has come up such that classes including Java X3D models
>>>> (instances of X3D class) provide a standard interface to one or more models
>>>> in the Java class.
>>>>
>>>> Currently, there are two implementations:
>>>>
>>>> JavaSerializer.js has an initialize() method which returns a X3D
>>>> model.  This probably violates SAI.
>>>>
>>>> X3dToJava.xslt provides a getX3dModel() method.  There's also an
>>>> incompatible initialize() method, which may follow SAI.
>>>>
>>>> There may be unknown implementations in Xj3D browser.
>>>>
>>>> I propose a new Java interface that returns an ArrayList or array or
>>>> some kind of iterator instance from the method getX3dModels().  This will
>>>> provide access to a collection of X3D instances in the class.  This will
>>>> allow both implementations to operate as they already do.
>>>>
>>>> The use case is to provide ways to output optimized (scaled) HAnim
>>>> scenegraphs.
>>>>
>>>> Comments?  Anyone want to propose the interface definition?  Would this
>>>> already be part of the Java SAI or abstract SAI, or can it be added?
>>>>
>>>> John
>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20240216/8d2030c9/attachment-0001.html>


More information about the x3d-public mailing list