[x3d-public] X3dToJson.xslt, X3dToPython.xslt, OrthoViewpoint fieldOfView

John Carlson yottzumm at gmail.com
Mon Jul 4 15:27:15 PDT 2022


As previously posted:
"Changed subject to be more focused on what's not working. Thanks for the
effort on VolumeEmitter.x3d, which despite not passing the x3d validator,
products of the XML are passing jsonlint and python. Note that the
VolumeEmitter.json passes jsonlint (and I guess the jshint and jslint or
whatever you use), but it does not pass the Ajv validator.  Will respond on
the other thread if something comes up."

Apparently it pays to have a non-empty schema!

Changes:

diff --git a/x3d-4.0-JSONSchema.json b/x3d-4.0-JSONSchema.json
index 5834443..abfcd9f 100644
--- a/x3d-4.0-JSONSchema.json
+++ b/x3d-4.0-JSONSchema.json
@@ -1,7 +1,7 @@
 {
   "$schema": "https://json-schema.org/draft/2020-12/schema",
   "$id": "https://www.web3d.org/specifications/x3d-4.0-JSONSchema.json",
-  "title": "X3D V4.0 JSON Schema, generated 2022/05/24 17:50:41",
+  "title": "X3D V4.0 JSON Schema, generated 2022/07/04 17:13:07",
   "description": "Experimental JSON Schema for X3D V4.0",
   "type": "object",
   "properties": {
@@ -19398,8 +19398,10 @@
               "type": "number"
             },
             "@fieldOfView": {
-              "$comment": "MFFloat inputOutput",
+              "$comment": "SFVec4f inputOutput",
               "type": "array",
+              "minItems": 4,
+              "maxItems": 4,
               "prefixItems": [
                 {
                   "default": -1,
@@ -19418,9 +19420,7 @@
                   "type": "number"
                 }
               ],
-              "items": {
-                "type": "number"
-              }
+              "items": false
             },
             "@jump": {
               "default": true,



Sorry for confusion!

John


On Sun, Jul 3, 2022 at 11:24 PM Brutzman, Donald (Don) (CIV) <
brutzman at nps.edu> wrote:

> [Changed subject line for readability/searchability – this is about
> OrthoViewpoint fieldOfView]
>
>
>
>    1. Invalid source XML in your .x3d excerpt: simple types should not
>    have commas within them.
>
>
>
>    - OrthoViewpoint fieldOfView='-1.5, -1.5, 1.5, 1.5'
>
>
>
>    1. OrthoViewpoint fieldOfView is defined as MFFloat in specification
>    but ought to be SFVec4f, since it must always have four numbers defining
>    ordered values (minimum_x, minimum_y, maximum_x, maximum_y).
>
>
>
> I am somehow locked out of mantis and so can’t verify what we previously
> said about this (if anything).  Seems like a simple specification erratum.
>
>
> Correlation confirmation: TextureProjectorParallel has fieldOfView
> SFVec4f.  Meanwhile Viewpoint GeoViewpoint and TextureProjector have
> SFFloat.
>
>
>
>    1. I think that the various fieldOfView types are handled in the
>    stylesheet s correctly now, checked in.
>
>
>
> I have also applied a tentative fix to X3D DOCTYPE, Schema, Tooltips and
> X3DUOM, but will wait to deploy any updates (including X3DJSAIL, X3DPSAIL)
> until checking mantis to confirm status.
>
>
>
> Thanks John for reporting this error, very helpful.
>
>
>
> all the best, Don
>
> --
>
> Don Brutzman  Naval Postgraduate School, Code USW/Br
> brutzman at nps.edu
>
> Watkins 270,  MOVES Institute, Monterey CA 93943-5000 USA
> +1.831.656.2149
>
> X3D graphics, virtual worlds, Navy robotics https://
> faculty.nps.edu/brutzman
>
>
>
> *From:* x3d-public <x3d-public-bounces at web3d.org> *On Behalf Of *John
> Carlson
> *Sent:* Sunday, July 3, 2022 12:10 AM
> *To:* X3D Graphics public mailing list <x3d-public at web3d.org>;
> holger.seelig at gmail.com
> *Subject:* [x3d-public] X3dToJson.xslt, X3dToPython.xslt,
> create3000/Library Test ParticleSystem possible issues. Though may not pass!
>
>
>
> Don,
>
>
>
> Here are some issues with various X3dTo*.xslt:
>
>
>
> grep fieldOfView VolumeEmitter.py
> VolumeEmitter.py:
>  OrthoViewpoint(description='OrthoViewpoint',fieldOfView=-1.5,-1.5,1.5,1.5),
>
>
>
> $ grep fieldOfView VolumeEmitter*
> VolumeEmitter.json:              "@fieldOfView":-1.5,-1.5,1.5,1.5
> VolumeEmitter.x3d:        fieldOfView='-1.5, -1.5, 1.5, 1.5'/>
>
>
>
> In the JSON, the MFFloat is does not appear to be an array, with [] around
> the numbers.
>
>
>
> In the python, there's no tuple or list markers denoting a tuple or list
>
>
>
> Note in the XML, both the "," and the space is separating the floats in
> the MFFloat.  I haven't seen that the MFBools with ", " as separators is
> working, but perhaps the problem is more general.
>
>
>
> Links to XML below.
>
> ====================================================
>
> Holger,
>
>
>
> I fully realize that these are test samples, and they may not pass, thus
> when I convert x3d  to python and run, these errors may appear (which may
> be totally valid).
>
>
>
> BoundedPhysicsModel.py
> x3d.py package 4.0.64.1 loaded, have fun with X3D Graphics!
> Traceback (most recent call last):
>   File
> "C:\Users\john\X3DJSONLD\src\main\python\net\x3djsonld\Library\Tests\Components\ParticleSystems\BoundedPhysicsModel.py",
> line 82, in <module>
>
> emitter=ConeEmitter(position=(0,-3,0),direction=(1,4,0),angle=0.4,speed=0.2,mass=3200),
>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
> 29419, in __init__
>     self.direction = direction
>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
> 29450, in direction
>     assertLessThanEquals('direction', direction, 1)
>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
> 1847, in assertLessThanEquals
>     assert isLessThanEquals(value, maximum), fieldName + '=' + str(value)
> + ' fails assertLessThanEquals maximum=' + str(maximum)
> AssertionError: direction=(1, 4, 0) fails assertLessThanEquals maximum=1
>
>
>
>
>
>
>
> PointEmitter.py
> x3d.py package 4.0.64.1 loaded, have fun with X3D Graphics!
> Traceback (most recent call last):
>   File
> "C:\Users\john\X3DJSONLD\src\main\python\net\x3djsonld\Library\Tests\Components\ParticleSystems\PointEmitter.py",
> line 92, in <module>
>     WindPhysicsModel(speed=0.8,gustiness=0.8,turbulence=2),
>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
> 99589, in __init__
>     self.turbulence = turbulence
>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
> 99643, in turbulence
>     assertZeroToOne('turbulence', turbulence)
>   File "C:\Users\john\X3DJSONLD\venv\lib\site-packages\x3d\x3d.py", line
> 1818, in assertZeroToOne
>     assert isZeroToOne(value), str(fieldName) + '=' + str(value) + ' fails
> assertZeroToOne requirements: value(s) must be in range [0..1]'
> AssertionError: turbulence=2 fails assertZeroToOne requirements: value(s)
> must be in range [0..1]
>
>
>
>
>
> SurfaceEmitter.py
> x3d.py package 4.0.64.1 loaded, have fun with X3D Graphics!
> Traceback (most recent call last):
>   File
> "C:\Users\john\X3DJSONLD\src\main\python\net\x3djsonld\Library\Tests\Components\ParticleSystems\SurfaceEmitter.py",
> line 50, in <module>
>     MetadataSet(DEF='children',name='children',reference='
> http://titania.create3000.de
> <https://nam10.safelinks.protection.outlook.com/?url=http%3A%2F%2Ftitania.create3000.de%2F&data=05%7C01%7Cbrutzman%40nps.edu%7C21c0ec8ed9424e5b9d1808da5cc31d7f%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637924290510977644%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000%7C%7C%7C&sdata=%2F4uxzeZzuYzvUqHz8AJaKk0zHgBuEfyrAyNzWK5XrYs%3D&reserved=0>
> ',
> TypeError: MetadataSet.__init__() got an unexpected keyword argument
> 'appearance'
>
>
>
> Original XML here:  Library/Tests/Components/ParticleSystems at main ·
> create3000/Library (github.com)
> <https://nam10.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fcreate3000%2FLibrary%2Ftree%2Fmain%2FTests%2FComponents%2FParticleSystems&data=05%7C01%7Cbrutzman%40nps.edu%7C21c0ec8ed9424e5b9d1808da5cc31d7f%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637924290510977644%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C2000%7C%7C%7C&sdata=AXA6SvrhXPQysoFmBpTi8vsUFZPbJC9gW60AGXCyfW8%3D&reserved=0>
>
>
>
> Attached generated python code.
>
>
>
>
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20220704/3898f59d/attachment.html>


More information about the x3d-public mailing list