<div dir="ltr"><div dir="ltr"><div dir="ltr">Summary, pending updates from Don.</div><div dir="ltr"><br></div><div>ProtoInstance with USE field should not contain a name field in Holger's Library examples. Previously discussed, with no change evident.</div><div>X3dToJson.xslt produces an MFString for NavigationInfo@type, should be array of strings, per Don's suggestion. I will try to reapply a patch.</div><div>X3dToJson.xslt: Appearance-pointProperties should be an object, not an array.</div><div>X3DToJava.xslt OrthoViewpoint.setFieldOfView has 4 parameters, probably should be one parameter, or X3DJSAIL should provide a 4 parameter option.</div><div>John needs to fix VolumeEmitter.java.</div><div>There seems to be some package conflict with X3DJSAIL and Holger's VolumeEmitter example. I am not sure.</div><div><br></div><div>I will repeat the JSON tests with Holger's x3d-tidy.</div><div><br></div><div>Details:</div><div><br></div><div dir="ltr"><br></div><div dir="ltr">I changed the X3DUOM+X_ITE field type of OrthoViewpoint.fieldOfView temporarily, and ran my fieldTypesGenerator.py in X3DJSONLD: My fieldTypes.js had this change in git diff:<div><br></div> "centerOfRotation" : "SFVec3f",<br> "description" : "SFString",<br> "farDistance" : "SFFloat",<br>- "fieldOfView" : "MFFloat",<br>+ "fieldOfView" : "SFVec3f",<br> "IS" : "SFNode",<br> "isBound" : "SFBool",<br><div> "jump" : "SFBool",</div><div><br></div><div><br></div><div>Plus others from Holger's X_ITE component. I have not tried any serialization of X3D JSON versions of glTF samples yet.</div><div><br></div><div>Then I ran ```bash local.sh``` in X3DJSONLD/src/main/shell</div><div><br></div><div>json2all.js produced no changes to my serialized files. There were only changes to date in my JSON files. I elide the date when producing serialized files, otherwise, I would get loads of change that I would have to check in with no real modifications to the file. What this means is the serialized files reflect the source XML, not the intermediate JSON.</div><div><br></div><div>I went looking for more examples. Since I couldn't find any in the email (is there one?) I pursued the sourceforge archives.</div><div><br></div><div>The only one I found in the sourceforge archives was this:</div><div><br></div><div>Basic/development/TestSchematronDiagnostics.x3d:</div><div><br></div><div><OrthoViewpoint DEF='NoSpacesInDescription' description='NeedToPutSpacesInDescription'/></div><div><br></div><div>No ConformanceNist? Frustrated, I decided to do a svn update. There were many updates.</div><div><br></div><div>No OrthoViewpoint search result updates. I'm not sure what to use for fieldOfView to test my serializers?</div><div><br></div><div>I will do a search on Holger's Library:</div><div><br></div><div>Found two;, great!</div><div>./Tests/Components/ParticleSystems/VolumeEmitter.x3d<br>./Tests/Components/Shape/Connectors.x3d</div><div><br></div><div>Moved those to my data folder.</div><div><br></div><div>Try to run several.sh</div><div><br></div><div>Apparently, the X3DJSONLD install had failed. Reinstalled.</div><div><br></div><div>Reran.</div><div><br></div><div>Ran into issues with iri and iri-reference in X3D JSON schema. I had not upgraded X3DJSONLD.</div><div><br></div><div>Fixed ajv configuration.</div><div><br></div><div><br></div><div>Ajv reports:</div><div><br></div><div>Adding schema: 4.0<br>Suppressing @USE missing property. Use $ node x3dvalidate.js --fullreport ../data/Connectors.json ... to reveal possibly confusing errors<br>Suppressing NavigationInfo.type as array. Use $ node x3dvalidate.js --fullreport ../data/Connectors.json file ... to reveal possibly confusing errors<br>Suppressing null passingSchemas. Use $ node x3dvalidate.js --fullreport ../data/Connectors.json file ... to reveal possibly confusing errors<br>Success validating ../data/Connectors.json<br>chopped rejoined "\"PLANE_create3000.de\", \"ANY\""<br>Suppressing @USE missing property. Use $ node x3dvalidate.js --fullreport ../data/VolumeEmitter.json ... to reveal possibly confusing errors<br>Suppressing null passingSchemas. Use $ node x3dvalidate.js --fullreport ../data/VolumeEmitter.json file ... to reveal possibly confusing errors<br>Success validating ../data/VolumeEmitter.json</div><div><br></div><div>```$ npx x3dvalidate --fullreport ../data/Connectors.json``` reports:</div><div><br></div><div>keyword: type<br> location in document: /X3D/Scene/-children/4/NavigationInfo/@type<br> message: must be array<br> params: {"type":"array"}<br> file: ../data/Connectors.json<br> version: 4.0</div><div><br></div><div><font color="#0000ff">The JSON code looks like:</font></div><div><font color="#0000ff"><br></font></div><div><font color="#0000ff"> { "NavigationInfo":<br> {<br> "@type":"\"PLANE_create3000.de\", \"ANY\""<br> }<br> },</font></div><div><font color="#0000ff"><br></font></div><div><font color="#0000ff">@type should be an array, as Don says, but he doesn't change the stylesheet. I guess I will look for stylesheet updates. I don't see anything relevant, updating anyway.<br></font></div><div><font color="#0000ff"> I will propose a patch again.</font></div><div><br></div><div>I guess I'm still arguing with Don about this.</div><div><br></div><div>```$ npx x3dvalidate --fullreport ../data/VolumeEmitter.json``` reports:</div><div><br></div><div>keyword: type<br> location in document: /X3D/Scene/-children/4/ParticleSystem/-appearance/Appearance/-pointProperties<br> message: must be object<br> params: {"type":"object"}<br> file: ../data/VolumeEmitter.json<br> version: 4.0</div><div><br></div><div>This one is more interesting and indicates a problem with X3dToJson.xslt or X3D JSON schema.</div><div><br></div><div>Relevant code:</div><div><br></div><div> "-appearance":<br> { "Appearance":<br> {<br> "-pointProperties":[<br> { "PointProperties":<br> {<br> "@pointSizeScaleFactor":2,<br> "@pointSizeMaxValue":2<br> }<br> }<br> ]<br> }<br> }</div><div><br></div><div>XML looks like:</div><div><br></div><div> <Appearance><br> <PointProperties<br> pointSizeScaleFactor='2'<br> pointSizeMaxValue='2'/><br> </Appearance></div><div><br></div><div>Web3d is down, so I can't reference the standard. X_ITE's website indicates Appearance.pointProperties is an SFNode:</div><div><font color="#000000" style="background-color:rgb(255,255,255)"><br></font></div><div><h3 id="m_7771458129529286553gmail-sfnode-in-out-pointproperties-null-pointproperties" style="box-sizing:border-box;margin:2rem 0px 1rem;font-weight:400;line-height:1.2;font-size:1.36rem;font-family:Lato,"Microsoft Yahei",sans-serif"><font color="#000000" style="background-color:rgb(255,255,255)"><span style="box-sizing:border-box;margin-right:0.5rem">SFNode [in, out] <strong style="box-sizing:border-box">pointProperties</strong> NULL <small style="box-sizing:border-box;font-size:16.32px">[PointProperties]</small></span><a href="https://create3000.github.io/x_ite/components/shape/appearance/#sfnode-in-out-pointproperties-null-pointproperties" style="box-sizing:border-box;text-decoration-line:none;font-size:17.408px;opacity:0" target="_blank"><span style="box-sizing:border-box;font-variant-numeric:normal;font-variant-east-asian:normal;font-variant-alternates:normal;line-height:1;font-family:"Font Awesome 6 Free";font-weight:900"></span></a></font></h3><p style="box-sizing:border-box;margin-top:0px;margin-bottom:1rem;font-family:"Source Sans Pro","Microsoft Yahei",sans-serif;font-size:16.48px"><font color="#000000" style="background-color:rgb(255,255,255)">Single contained <a href="https://create3000.github.io/x_ite/components/shape/pointproperties/" style="box-sizing:border-box;text-decoration-line:none" target="_blank">PointProperties</a> node that can specify additional visual attributes applied to corresponding point geometry.</font></p><p style="box-sizing:border-box;margin-top:0px;margin-bottom:1rem;font-family:"Source Sans Pro","Microsoft Yahei",sans-serif;font-size:16.48px"><font color="#000000" style="background-color:rgb(255,255,255)"><br></font></p><p style="box-sizing:border-box;margin-top:0px;margin-bottom:1rem;font-family:"Source Sans Pro","Microsoft Yahei",sans-serif;font-size:16.48px"><font color="#000000">X3DOM's website says:</font></p><p style="box-sizing:border-box;margin-top:0px;margin-bottom:1rem;font-family:"Source Sans Pro","Microsoft Yahei",sans-serif;font-size:16.48px"><font color="#000000"><br></font></p><table style="border-collapse:collapse;border-spacing:0px;max-width:100%;width:1140px;margin-bottom:21px;color:rgb(51,51,51);font-family:"Open Sans",Calibri,Candara,Arial,sans-serif;font-size:15px"><tbody style="box-sizing:border-box"><tr style="box-sizing:border-box"><td style="box-sizing:border-box;padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid rgb(221,221,221);background-color:rgb(249,249,249)">pointProperties</td><td style="box-sizing:border-box;padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid rgb(221,221,221);background-color:rgb(249,249,249)">SFNode</td><td style="box-sizing:border-box;padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid rgb(221,221,221);background-color:rgb(249,249,249)"><a href="https://doc.x3dom.org/developer/x3dom/nodeTypes/PointProperties.html" style="box-sizing:border-box;background:transparent;color:rgb(38,111,151)" target="_blank">PointProperties</a></td><td style="box-sizing:border-box;padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid rgb(221,221,221);background-color:rgb(249,249,249)"></td><td style="box-sizing:border-box;padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid rgb(221,221,221);background-color:rgb(249,249,249)"></td><td style="box-sizing:border-box;padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid rgb(221,221,221);background-color:rgb(249,249,249)"><img src="https://doc.x3dom.org/static/images/x3d.png" style="box-sizing:border-box;border:0px;vertical-align:middle"></td><td style="box-sizing:border-box;padding:8px;line-height:1.42857;vertical-align:top;border-top:1px solid rgb(221,221,221);background-color:rgb(249,249,249)">The pointProperties field, if specified, shall contain a PointProperties node. If pointProperties is NULL or unspecified, the pointProperties field has no effect.<br></td></tr></tbody></table></div></div><div class="gmail_quote"><div><font color="#0000ff">So it appears like pointProperties should be an object,and not an array. I am currently using X3dToJson.xslt, which is incorrect from the point of view of X3DOM and X_ITE, and X3D JSON schema is correct. This is a new fiinding for me, and I will try to patch the stylesheet.</font></div><div><br></div><div>My suggestion is to review X3dToJson.xslt and have a correct X3D JSON schema to test the results.</div><div><br></div><div>Continuing with several.sh:</div><div><br></div><div>My java is can mostly compile, see compilation:</div><div><br></div><div>javac -proc:full -J-Xss1g -J-Xmx4g Connectors.java<br>~/X3DJSONLD/src/main/shell<br>~/X3DJSONLD/src/main/java/net/coderextreme/data ~/X3DJSONLD/src/main/shell<br>javac -proc:full -J-Xss1g -J-Xmx4g VolumeEmitter.java<br>VolumeEmitter.java:85: error: cannot find symbol<br> .setEmitter(new VolumeEmitter().setDirection(new double[] {0,0,0}).setMass(0.01).setSurfaceArea(0.01)<br> ^<br> symbol: method setDirection(double[])<br> location: class VolumeEmitter<br>1 error</div><div><br></div><div>There's issues with Don's, probably pending X3dToJava.xslt. Will attempt to update stylesheet:</div><div><br></div><div><br></div><div><br></div><div>compiling<br>~/X3DJSONLD/src/main/java ~/X3DJSONLD/src/main/shell<br>.\net\x3djsonld\data\VolumeEmitter.java:110: error: no suitable method found for setFieldOfView(double,double,double,double)<br> .addChild(new OrthoViewpoint().setDescription("OrthoViewpoint").setFieldOfView(-1.5,-1.5,1.5,1.5))<br> ^<br> method OrthoViewpoint.setFieldOfView(float[]) is not applicable<br> (actual and formal argument lists differ in length)<br> method OrthoViewpoint.setFieldOfView(MFFloat) is not applicable<br> (actual and formal argument lists differ in length)<br> method OrthoViewpoint.setFieldOfView(ArrayList<Float>) is not applicable<br> (actual and formal argument lists differ in length)<br> method OrthoViewpoint.setFieldOfView(int[]) is not applicable<br> (actual and formal argument lists differ in length)<br> method OrthoViewpoint.setFieldOfView(double[]) is not applicable<br> (actual and formal argument lists differ in length)<br>.\net\x3djsonld\data\VolumeEmitter.java:113: error: cannot find symbol<br> .setEmitter(new /*avoid name collision with file name by defining full package*/org.web3d.x3d.jsail.VolumeEmitter().setDirection(0.0,0.0,0.0).setMass(0.01).setSurfaceArea(0.01)<br> ^<br> symbol: class VolumeEmitter<br> location: package org.web3d.x3d.jsail<br>2 errors</div><div><br></div><div>More work with Java stylesheet. Holger needs to update his ProtoInstances:</div><div><br></div><div>BEGIN ../data/Connectors.x3d > java, *** Error: found ProtoInstance USE='N1' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N1' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N1' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N2' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N3' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N6' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N4' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N5' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N7' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N6' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N7' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N8' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N1' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N2' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N3' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N4' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N5' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N6' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N7' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>*** Error: found ProtoInstance USE='N8' with unnecessary name='Node' included, need to remove name field from ProtoInstance USE nodes<br>END ../data/Connectors.x3d</div><div><br></div><div>I'm guessing even though X3dToJava.xslt stylesheet is updated, X3DJSAIL still needs to be updated: (these are fresh downloads from sourceforge, with my own build of X3DJSAIL, which are probably not released):</div><div><br></div><div>Same errors as above:</div><div><br></div><div>.\net\x3djsonld\data\VolumeEmitter.java:110: error: no suitable method found for setFieldOfView(double,double,double,double)<br> .addChild(new OrthoViewpoint().setDescription("OrthoViewpoint").setFieldOfView(-1.5,-1.5,1.5,1.5))<br> ^<br> method OrthoViewpoint.setFieldOfView(float[]) is not applicable<br> (actual and formal argument lists differ in length)<br> method OrthoViewpoint.setFieldOfView(MFFloat) is not applicable<br> (actual and formal argument lists differ in length)<br> method OrthoViewpoint.setFieldOfView(ArrayList<Float>) is not applicable<br> (actual and formal argument lists differ in length)<br> method OrthoViewpoint.setFieldOfView(int[]) is not applicable<br> (actual and formal argument lists differ in length)<br> method OrthoViewpoint.setFieldOfView(double[]) is not applicable<br> (actual and formal argument lists differ in length)<br>.\net\x3djsonld\data\VolumeEmitter.java:113: error: cannot find symbol<br> .setEmitter(new /*avoid name collision with file name by defining full package*/org.web3d.x3d.jsail.VolumeEmitter().setDirection(0.0,0.0,0.0).setMass(0.01).setSurfaceArea(0.01)<br> ^<br> symbol: class VolumeEmitter<br> location: package org.web3d.x3d.jsail</div><div><br></div><div>More stuff on Holger's side with stylesheet conversion. with X3dToES5.xslt. I will look for stylesheet updates. The stylesheet up to date, but still errors:</div><div><br></div><div>$ ../../../../shell/jjs.sh Connectors.js 2>&1 |grep Exception|sort -u<br>org.web3d.x3d.sai.InvalidProtoException: *** ProtoInstance has name field, which is not included in a ProtoInstance USE node.</div><div><br></div><div>It does look like Don has done a great deal of work on the stylesheets overall, further investigation and updates are needed on my part.</div></div>
</div>
</div>