<div dir="ltr">Swapping skinCoord and skin field order in my HAnimHumanoid templates solved my issue.  I just had to match against both coord (skin IFS) and skinCoord when substituting a point attribute.</div><br><div class="gmail_quote gmail_quote_container"><div dir="ltr" class="gmail_attr">On Thu, Feb 6, 2025 at 10:11 PM 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:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">Summary.  Please make sure input XML and output XML order field in HAnimHumanoid agree in X3DJSAIL. or solve the DEF/USE problem.<div><div><br></div><div>Most obvious, skinCoord and skin become reversed.</div><div><br></div><div>We need to make sure all our tools agree on field order.  I will work on WinterAndSpring (the original source).</div><div><br></div><div>$ java -cp ~/Downloads/X3DJSAIL.4.0.full.jar org.web3d.x3d.jsail.CommandLine -toXML Gramps8Final.x3d > Gramps8Final.x3d.out</div><div><br></div><div>Order switched between input XML and output XML:</div><div><br></div><div>$ grep GrampsSkinCoord Gramps8Final.x3d*<br>Gramps8Final.x3d:                                       <Coordinate DEF="GrampsSkinCoord" containerField="skinCoord"<br>Gramps8Final.x3d:                                                               <Coordinate USE="GrampsSkinCoord" /><br>Gramps8Final.x3d.out:                  <Coordinate USE='GrampsSkinCoord'/><br>Gramps8Final.x3d.out:            <Coordinate DEF='GrampsSkinCoord' containerField='skinCoord'/></div><div><br></div><div>If you're going to swap the fields, swap the DEF/USE too.</div><div><br></div><div>============================================================================================</div><div>Less obvious:</div><div><br></div><div>Original XML:<div><br></div><div>Gramps8Final.x3d:                                       <Coordinate DEF="GrampsSkinCoord" containerField="skinCoord"<br>Gramps8Final.x3d:                                                               <Coordinate USE="GrampsSkinCoord" /></div><div>---------------------------------------------------------------------------------------------</div><div>Translated JSON:</div><div><br></div><div>Gramps8Final.json:                                      "@DEF":"GrampsSkinCoord",<br>Gramps8Final.json:                                                        "@USE":"GrampsSkinCoord"</div><div>--------------------------------------------------------------------------------------------------------</div><div>My GraalJS code (derived from JSON):</div><div><br></div><div>                .setSkinCoord(new Coordinate().setContainerFieldOverride("skinCoord").setDEF("Gramps<br>                      .setCoord(new Coordinate().setUSE("GrampsSkinCoord"))</div><div>-------------------------------------------------------------------------------------------------</div><div>My Java code (doesn't compile):</div><div><br></div><div>                .setSkinCoord(((Coordinate)new Coordinate().setContainerFieldOverride("skinCoord")).<br>                      .setCoord(new Coordinate().setUSE("GrampsSkinCoord"))</div><div><br></div><div>------------------------------------------------------------------------------------------------------</div><div>Output X3DJSAIL XML (from GraalJS code):</div><div><br></div><div>Gramps_WS.scaled1.x3d:                  <Coordinate USE='GrampsSkinCoord'/><br>Gramps_WS.scaled1.x3d:            <Coordinate DEF='GrampsSkinCoord' containerField='skinCoord' point</div><div><br></div><div>This seems to be the problem of DEF/USE in or field order HAnimHumanoid fields.</div></div></div><div><br></div><div>Original too big to attach.  See link:  <a href="https://coderextreme.net/Gramps8.zip" target="_blank">https://coderextreme.net/Gramps8.zip</a>  GitHub doesn't like large files.</div><div><br></div><div>John</div></div>
</blockquote></div>