<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Oops, there was an issue with the good code, bottomi versus
      bottom<br>
    </p>
    <div class="moz-cite-prefix">On 6/17/21 9:10 AM, John Carlson wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAGC3UEnKGP+TJHeFh6b+09J_wG=1RoQMKpiOK76y=OQOjEm0rA@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <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"
              moz-do-not-send="true">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 = "bottom";<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>
    </blockquote>
  </body>
</html>