<div dir="auto"> A workaround would help, like compilation of X3DJSAIL without code generation.</div><div dir="auto"><br></div><div dir="auto">John </div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Jun 17, 2021 at 2:06 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;padding-left:1ex;border-left-color:rgb(204,204,204)">Bad code in X3DJSAIL is producing bad JSON and XML output.<br>
<br>
The enclosed code (second block below) has not been updated/reflected in <br>
X3DJSAIL, ComposedCubeMapTexture.java. This causes problems when <br>
emitting JSON from X3DJSAIL. Here is what the code currently looks like <br>
for comparison (first block below), obviously there is an error here.<br>
<br>
Please fix this ASAP because I cannot generate good JSON or XML from <br>
X3DJSAIL for my ComposedCubeMapTexture's. The X3dToJson.xslt is not the <br>
problem. The problem is in specifying the containerField for the <br>
texture for each of 6 textures. The intermediate XML shows the problem: <br>
6 textures, all pointed at the back containerField.<br>
<br>
It's about time to throw up my hands and get rid of my test cases doing <br>
this, and go back to PlayCanvas.<br>
<br>
Or perhaps I should just experiment with PBR. Hmm.<br>
<br>
BAD CURRENT CODE <br>
==============================================================================================================================================<br>
<br>
private void handleFieldSynonyms()<br>
{<br>
String correctedContainerField;<br>
if (hasAncestorX3D() && <br>
findAncestorX3D().getVersion().startsWith("3"))<br>
correctedContainerField = "back";<br>
else correctedContainerField = "backTexture";<br>
<br>
if (getBackTexture() != null)<br>
((X3DConcreteNode) <br>
getBackTexture()).setContainerFieldOverride(correctedContainerField);<br>
else if (getBackTextureProtoInstance() != null)<br>
((X3DConcreteNode) <br>
getBackTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
<br>
if (getBottomTexture() != null)<br>
((X3DConcreteNode) <br>
getBottomTexture()).setContainerFieldOverride(correctedContainerField);<br>
else if (getBottomTextureProtoInstance() != null)<br>
((X3DConcreteNode) <br>
getBottomTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
<br>
if (getFrontTexture() != null)<br>
((X3DConcreteNode) <br>
getFrontTexture()).setContainerFieldOverride(correctedContainerField);<br>
else if (getFrontTextureProtoInstance() != null)<br>
((X3DConcreteNode) <br>
getFrontTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
<br>
if (getLeftTexture() != null)<br>
((X3DConcreteNode) <br>
getLeftTexture()).setContainerFieldOverride(correctedContainerField);<br>
else if (getLeftTextureProtoInstance() != null)<br>
((X3DConcreteNode) <br>
getLeftTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
<br>
if (getRightTexture() != null)<br>
((X3DConcreteNode) <br>
getRightTexture()).setContainerFieldOverride(correctedContainerField);<br>
else if (getRightTextureProtoInstance() != null)<br>
((X3DConcreteNode) <br>
getRightTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
<br>
if (getTopTexture() != null)<br>
((X3DConcreteNode) <br>
getTopTexture()).setContainerFieldOverride(correctedContainerField);<br>
else if (getTopTextureProtoInstance() != null)<br>
((X3DConcreteNode) <br>
getTopTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
}<br>
<br>
On 6/11/21 11:34 AM, John Carlson wrote:<br>
GOOD CODE <br>
====================================================================================================================================================================<br>
><br>
> private void handleFieldSynonyms()<br>
> {<br>
> String correctedContainerField;<br>
> if (hasAncestorX3D() && <br>
> findAncestorX3D().getVersion().startsWith("3"))<br>
> correctedContainerField = "back";<br>
> else correctedContainerField = "backTexture";<br>
><br>
> if (getBackTexture() != null)<br>
> ((X3DConcreteNode) <br>
> getBackTexture()).setContainerFieldOverride(correctedContainerField);<br>
> else if (getBackTextureProtoInstance() != null)<br>
> ((X3DConcreteNode) <br>
> getBackTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
><br>
> if (hasAncestorX3D() && <br>
> findAncestorX3D().getVersion().startsWith("3"))<br>
> correctedContainerField = "bottomi";<br>
> else correctedContainerField = "bottomiTexture";<br>
><br>
> if (getBottomTexture() != null)<br>
> ((X3DConcreteNode) <br>
> getBottomTexture()).setContainerFieldOverride(correctedContainerField);<br>
> else if (getBottomTextureProtoInstance() != null)<br>
> ((X3DConcreteNode) <br>
> getBottomTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
><br>
> if (hasAncestorX3D() && <br>
> findAncestorX3D().getVersion().startsWith("3"))<br>
> correctedContainerField = "front";<br>
> else correctedContainerField = "frontTexture";<br>
><br>
> if (getFrontTexture() != null)<br>
> ((X3DConcreteNode) <br>
> getFrontTexture()).setContainerFieldOverride(correctedContainerField);<br>
> else if (getFrontTextureProtoInstance() != null)<br>
> ((X3DConcreteNode) <br>
> getFrontTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
><br>
> if (hasAncestorX3D() && <br>
> findAncestorX3D().getVersion().startsWith("3"))<br>
> correctedContainerField = "left";<br>
> else correctedContainerField = "leftTexture";<br>
><br>
> if (getLeftTexture() != null)<br>
> ((X3DConcreteNode) <br>
> getLeftTexture()).setContainerFieldOverride(correctedContainerField);<br>
> else if (getLeftTextureProtoInstance() != null)<br>
> ((X3DConcreteNode) <br>
> getLeftTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
><br>
> if (hasAncestorX3D() && <br>
> findAncestorX3D().getVersion().startsWith("3"))<br>
> correctedContainerField = "right";<br>
> else correctedContainerField = "rightTexture";<br>
><br>
> if (getRightTexture() != null)<br>
> ((X3DConcreteNode) <br>
> getRightTexture()).setContainerFieldOverride(correctedContainerField);<br>
> else if (getRightTextureProtoInstance() != null)<br>
> ((X3DConcreteNode) <br>
> getRightTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
><br>
> if (hasAncestorX3D() && <br>
> findAncestorX3D().getVersion().startsWith("3"))<br>
> correctedContainerField = "top";<br>
> else correctedContainerField = "topTexture";<br>
><br>
> if (getTopTexture() != null)<br>
> ((X3DConcreteNode) <br>
> getTopTexture()).setContainerFieldOverride(correctedContainerField);<br>
> else if (getTopTextureProtoInstance() != null)<br>
> ((X3DConcreteNode) <br>
> getTopTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);<br>
><br>
><br>
</blockquote></div></div>