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

John Carlson yottzumm at gmail.com
Mon Jul 4 13:39:13 PDT 2022


Ditto for MFFloat in x3d tooltips.

Ditto for MFString in x3d tooltips.

Are X3dTo*.xslt inputs limited to canonical form?

John

On Mon, Jul 4, 2022 at 2:19 PM John Carlson <yottzumm at gmail.com> wrote:

> I’m reading the x3d tooltips for MFBool, and it says commas may be used as
> whitespace.  Don, I’m not sure why you brought up SFColor/MFColor, except
> to bolster your position?  I think we can both be right.
>
> In other words, please support commas as whitespace for MFBool fields and
> (maybe) MFFloat fields, or support them as separating SF elements within an
> MF array.   I realize this may not suit the international audience with
> MFFloats
>
> You might have already made the change to X3dToJson.xslt and
> X3dToPython.xslt, i will look into checking out unmodified MFBools and
> MFFloats.
>
> As an exercise, confirm that commas can be used as whitespace in MFFloats
> in XML.  I will too.
>
> I concur that commas should not be allowed within SF fields in XML, except
> for SFStrings (Text element).
>
> Your response is welcome!
>
> Onward!
>
> John
>
> 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/3c0449db/attachment-0001.html>


More information about the x3d-public mailing list