<div dir="auto">I was referring to material being an MFNode.   We cleared that up by introducing backMaterial into the discussion.  I do not know the state of the data at the moment, but there was talk of combining the two Material nodes into a single node.</div><div dir="auto"><br></div><div dir="auto">Great to have you back and I hope you don’t experience long term effects of COVID.</div><div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 26, 2021 at 6:05 AM Michalis Kamburelis <<a href="mailto:michalis.kambi@gmail.com">michalis.kambi@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)">"Shape.appearance" is, always was, and should be, SFNode, IMHO.<br>
<br>
I can think of some possible uses of "Shape.appearance" being MFNode<br>
(fallback materials), but it would be a big complication (both in spec<br>
and in implementation), not justified IMHO.<br>
<br>
Regards,<br>
Michalis<br>
<br>
pt., 16 kwi 2021 o 08:54 John Carlson <<a href="mailto:yottzumm@gmail.com" target="_blank">yottzumm@gmail.com</a>> napisał(a):<br>
><br>
> Indeed, Appearance material is an SFNode, not an MFNode in X3DV4.   What do you think?<br>
><br>
> On 4/16/21 1:17 AM, John Carlson wrote:<br>
><br>
> Traceback:<br>
><br>
> Found the following error with my ~/x3dschema JSON parse test, done by running `base validate.sh`, results in javaresults.txt, which is filtered (also need to filter "node_modules") here: <a href="https://github.com/coderextreme/x3dschema/blob/master/jsonparseresults.txt" rel="noreferrer" target="_blank">https://github.com/coderextreme/x3dschema/blob/master/jsonparseresults.txt</a> Cleaned up results here:<br>
><br>
> json-parse json Expected a ':' after a key at 196859 [character 37 line 216] x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/SingleAudio.json<br>
> json-parse json Expected a ':' after a key at 7359 [character 31 line 198] x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/SplitChannels.json<br>
> json-parse json Expected a ':' after a key at 287624 [character 37 line 270] x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound/SpatialAudioCameraAnimation.json<br>
><br>
><br>
> Note that there are two Material objects in SplitChannels.json, so -material should probably be an array.   Will check XML.<br>
><br>
> SplitChannels.x3d excerpt:<br>
><br>
>       <Transform DEF='volumeRight' rotation='1 0 0 -0.5' scale='10 10 10' translation='0 -10 0'><br>
>         <Shape><br>
>           <Appearance><br>
>             <Material diffuseColor='0.345 0.345 0.882' transparency='0'/><br>
>             <Material ambientIntensity='0.0933' diffuseColor='1 1 1' emissiveColor='0 0 0' shininess='0.51' specularColor='0.46 0.46 0.46'/><br>
>           </Appearance><br>
>           <Text solid='false' string='Right Channel Volume'><br>
>             <FontStyle family='&apos;Times&apos;' horizontal='true' justify='BEGIN' leftToRight='true' size='1' spacing='1' style='BOLD' topToBottom='true'/><br>
>           </Text><br>
>         </Shape><br>
>       </Transform><br>
><br>
><br>
> The following will show the two Material Appearances in all three .x3d files.<br>
><br>
> x3d/content/examples/X3dForAdvancedModeling/AudioSpatialSound$ egrep 'Appearance|Material' *.x3d<br>
><br>
> Will check for error/warning/development.  An allied file in same folder has a warning, but none in these .x3d files that I can tell.<br>
><br>
> Will check web. <a href="https://x3dgraphics.com/examples/X3dForAdvancedModeling/AudioSpatialSound/SplitChannelsIndex.html" rel="noreferrer" target="_blank">https://x3dgraphics.com/examples/X3dForAdvancedModeling/AudioSpatialSound/SplitChannelsIndex.html</a> looks like above.<br>
><br>
><br>
> Will check X3DV4 schema:<br>
><br>
> <xs:element name="Appearance"><br>
>         <xs:annotation><br>
>             <xs:appinfo><br>
>                 [snip]<br>
>                 <xs:element name="material" type="SFNode" fixed="inputOutputField" default="X3DMaterialNode"/><br>
><br>
> I'm reading this that there shouldn't be more that one Material, otherwise, material would be an MFNode.<br>
><br>
> Running the XML files through X3D validator:   All three .x3d files fail<br>
><br>
> Don't forget to validate before checking in.  I'm aware these files are under development. My best guess is we'll have to wait for a new copy of the X3D validator and schema?<br>
><br>
> If we make -material an array, this will be a pretty significant change, basically affecting practically everything.  It's easy for XML, and we haven't defined X3D JSON in a standard, but in the future, I recommend changing SFNode to MFNode with care.<br>
><br>
> jsonlint errors follow:<br>
><br>
> SingleAudio.json<br>
> Error: Parse error on line 207:<br>
> ...                    { "Material":<br>
> -----------------------^<br>
> Expecting 'STRING', got '{'<br>
>     at Object.parseError (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:55:11)<br>
>     at Object.parse (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:132:22)<br>
>     at parse (/usr/local/lib/node_modules/jsonlint/lib/cli.js:82:14)<br>
>     at main (/usr/local/lib/node_modules/jsonlint/lib/cli.js:135:14)<br>
>     at Object.<anonymous> (/usr/local/lib/node_modules/jsonlint/lib/cli.js:179:1)<br>
>     at Module._compile (internal/modules/cjs/loader.js:1138:30)<br>
>     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)<br>
>     at Module.load (internal/modules/cjs/loader.js:986:32)<br>
>     at Function.Module._load (internal/modules/cjs/loader.js:879:14)<br>
>     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)<br>
> SpatialAudioCameraAnimation.json<br>
> Error: Parse error on line 261:<br>
> ...                    { "Material":<br>
> -----------------------^<br>
> Expecting 'STRING', got '{'<br>
>     at Object.parseError (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:55:11)<br>
>     at Object.parse (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:132:22)<br>
>     at parse (/usr/local/lib/node_modules/jsonlint/lib/cli.js:82:14)<br>
>     at main (/usr/local/lib/node_modules/jsonlint/lib/cli.js:135:14)<br>
>     at Object.<anonymous> (/usr/local/lib/node_modules/jsonlint/lib/cli.js:179:1)<br>
>     at Module._compile (internal/modules/cjs/loader.js:1138:30)<br>
>     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)<br>
>     at Module.load (internal/modules/cjs/loader.js:986:32)<br>
>     at Function.Module._load (internal/modules/cjs/loader.js:879:14)<br>
>     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)<br>
> SplitChannels.json<br>
> Error: Parse error on line 189:<br>
> ...                    { "Material":<br>
> -----------------------^<br>
> Expecting 'STRING', got '{'<br>
>     at Object.parseError (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:55:11)<br>
>     at Object.parse (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:132:22)<br>
>     at parse (/usr/local/lib/node_modules/jsonlint/lib/cli.js:82:14)<br>
>     at main (/usr/local/lib/node_modules/jsonlint/lib/cli.js:135:14)<br>
>     at Object.<anonymous> (/usr/local/lib/node_modules/jsonlint/lib/cli.js:179:1)<br>
>     at Module._compile (internal/modules/cjs/loader.js:1138:30)<br>
>     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1158:10)<br>
>     at Module.load (internal/modules/cjs/loader.js:986:32)<br>
>     at Function.Module._load (internal/modules/cjs/loader.js:879:14)<br>
>     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)<br>
><br>
> _______________________________________________<br>
> x3d-public mailing list<br>
> <a href="mailto:x3d-public@web3d.org" target="_blank">x3d-public@web3d.org</a><br>
> <a href="http://web3d.org/mailman/listinfo/x3d-public_web3d.org" rel="noreferrer" target="_blank">http://web3d.org/mailman/listinfo/x3d-public_web3d.org</a><br>
</blockquote></div></div>