[x3d-public] X3DJSAIL still broken! XML actually

John Carlson yottzumm at gmail.com
Thu Jul 1 13:29:47 PDT 2021


Actually, I believe *XML* export is failing from X3DJSAIL.  XML output 
causes the X3dToJson.xslt to produce bad results.

See below code.

See pretty printed code attached from X3DJSAIL export.  Search for 
multiple versions of backTexture causing the JSON generation to get 
messed up.

Perhaps we should add a schematron hint for when backTexture, etc. is 
repeated in a ComposedCubeMapTexture?

Java looks fine. Your Java looks good too.

x3d/stylesheets/java/src/org/web3d/x3d/jsail/CubeMapTexturing/ComposedCubeMapTexture.java
> /**
>          * Utility method to adjust field synonyms
>          * @see <a
> href="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges">X3D 
>
> Scene Authoring Hints: X3D4 Field name changes for improved
> consistency</a>
>      */
>     private void handleFieldSynonyms()
>     {
>         String correctedContainerField;
>         if (hasAncestorX3D() &&
> findAncestorX3D().getVersion().startsWith("3"))
>              correctedContainerField = "back";
>         else correctedContainerField = "backTexture";
>
>         if      (getBackTexture() != null)
>                  ((X3DConcreteNode)
> getBackTexture()).setContainerFieldOverride(correctedContainerField);
>         else if (getBackTextureProtoInstance() != null)
>                  ((X3DConcreteNode)
> getBackTextureProtoInstance()).setContainerFieldOverride(correctedContainerField); 
>
>
>         if      (getBottomTexture() != null)
>                  ((X3DConcreteNode)
> getBottomTexture()).setContainerFieldOverride(correctedContainerField);
>         else if (getBottomTextureProtoInstance() != null)
>                  ((X3DConcreteNode)
> getBottomTextureProtoInstance()).setContainerFieldOverride(correctedContainerField); 
>
>
>         if      (getFrontTexture() != null)
>                  ((X3DConcreteNode)
> getFrontTexture()).setContainerFieldOverride(correctedContainerField);
>         else if (getFrontTextureProtoInstance() != null)
>                  ((X3DConcreteNode)
> getFrontTextureProtoInstance()).setContainerFieldOverride(correctedContainerField); 
>
>
>         if      (getLeftTexture() != null)
>                  ((X3DConcreteNode)
> getLeftTexture()).setContainerFieldOverride(correctedContainerField);
>         else if (getLeftTextureProtoInstance() != null)
>                  ((X3DConcreteNode)
> getLeftTextureProtoInstance()).setContainerFieldOverride(correctedContainerField); 
>
>
>         if      (getRightTexture() != null)
>                  ((X3DConcreteNode)
> getRightTexture()).setContainerFieldOverride(correctedContainerField);
>         else if (getRightTextureProtoInstance() != null)
>                  ((X3DConcreteNode)
> getRightTextureProtoInstance()).setContainerFieldOverride(correctedContainerField); 
>
>
>         if      (getTopTexture() != null)
>                  ((X3DConcreteNode)
> getTopTexture()).setContainerFieldOverride(correctedContainerField);
>         else if (getTopTextureProtoInstance() != null)
>                  ((X3DConcreteNode)
> getTopTextureProtoInstance()).setContainerFieldOverride(correctedContainerField); 
>
>         } 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ball.newPrettyPrint.intermediate.x3d
Type: model/x3d+xml
Size: 8882 bytes
Desc: not available
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20210701/b2a9ec0b/attachment-0001.x3d>


More information about the x3d-public mailing list