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

John Carlson yottzumm at gmail.com
Mon Jul 4 11:49:24 PDT 2022


Ok.   So the MF fields with type MFBool and MFFloat (as originally stated)
may contain commas separating SF fields in the XML encoding?

I think the  type SFVec3f for fieldOfView may be a misunderstanding?  We
would need to tell everyone who has been using the field as an MFFloat like
Holger?

I will try to dig into tooltips, but I’m on my phone.

On Mon, Jul 4, 2022 at 11:05 AM Brutzman, Donald (Don) (CIV) <
brutzman at nps.edu> wrote:

> Hi John.
>
>
>
>    1. Commas are treated as whitespace in ClassicVRML encoding.
>    2. Commas are not allowed within SF field values in XML encoding.
>    They are allowed between SF field values in MF field lists.
>    3. For really long numeric value arrays, this is a helpful restriction
>    that helps localize errors and support tuple counting by authors
>    4. Validation tools (included X3D regexes) diagnose this.
>    5. This is documented in X3D Tooltips, which are based on XML
>    encoding.  Example excerpts follow.
>
>
>
>    - X3D Tooltips: Field Types Table
>    - https://www.web3d.org/x3d/tooltips/X3dTooltips.html#FieldTypesTable
>    - SFColor, “*Warning:* comma characters within attribute values do not
>    pass strict validation, and comma separators are not included in canonical
>    form.”
>    - MFColor, “*Warning:* comma characters within contained singleton
>    3-tuple SFColor values do not pass strict validation.
>    *Hint:* comma characters are allowed as whitespace between individual
>    SFColor values in the list.”
>
>
>
> So once again we see that being careful and strict about X3D XML
> validation is very helpful when converting to other encodings.
>
>
>
> 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:* John Carlson <yottzumm at gmail.com>
> *Sent:* Sunday, July 3, 2022 11:25 PM
> *To:* Brutzman, Donald (Don) (CIV) <brutzman at nps.edu>
> *Cc:* X3D Graphics public mailing list <x3d-public at web3d.org>;
> holger.seelig at gmail.com
> *Subject:* Re: [x3d-public] X3dToJson.xslt, X3dToPython.xslt,
> OrthoViewpoint fieldOfView
>
>
>
> My recall isn’t that good, and I can’t recall if /,/ — comma, is treated
> as white space in some field values and not in others.   I guess this is
> yet to be specified for new architecture documents—it should be discussed
> in encoding and binding standards.   I do think one can use commas between
> SF values in an MF value (not within) in XML.   I believe python requires
> commas within and between tuples and lists.
>
>
>
> It maybe good to have test cases which aren’t possible with current
> validation.
>
>
>
> I think this came up before in reference to HAnim Motion.
>
>
>
> “Be liberal in what you accept and conservative in what you generate.”  —
> Jon Postel.
>
>
>
> I totally understand the frustration of dealing with corners of XSLT.
>
>
>
> I’m hoping something like Tidy can clear this up.
>
>
>
> 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%7C40626d73a7eb413283ff08da5d85e75d%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637925127310045334%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=uppYBcwQcvLhUfca%2F6AIIUfF2FssWTG%2BmmOSX6%2FuX1A%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%7C40626d73a7eb413283ff08da5d85e75d%7C6d936231a51740ea9199f7578963378e%7C0%7C0%7C637925127310045334%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C3000%7C%7C%7C&sdata=z1GBaoqNl%2BDzwnMFSQTYJYenJEFXhgJAQe0r12hqeNA%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/fa8d87d7/attachment-0001.html>


More information about the x3d-public mailing list