[x3d-public] review of various X3D statement implementations for X3DOM

Andreas Plesch andreasplesch at gmail.com
Wed Dec 13 12:57:24 PST 2017


Thanks for sharing these wiki updates. These are great x3dom summaries.

http://www.web3d.org/wiki/index.php/X3D/HTML_Implementations#X3DOM_specific_event_handlers

In addition to onoutputchanged there is also a very useful but not
officially documented onviewpointchanged event. See these github
issues:

https://github.com/x3dom/x3dom/search?q=viewpointchanged&type=Issues&utf8=%E2%9C%93


http://www.web3d.org/wiki/index.php/X3D/HTML_Implementations#X3D_Nodes_with_additional_or_missing_fields

crossOrigin does relate to CORS which prohibits fetching from remote
resources unless explicitly allowed. crossOrigin = "anonymous" can be
very useful if remote host allows it.


http://www.web3d.org/wiki/index.php/X3D/HTML_Implementations#Additional_nodes_not_in_X3D

Since I just came across it there is also RenderedTexture
(https://github.com/x3dom/x3dom/blob/master/src/nodes/Texturing/RenderedTexture.js)
which is documented as X3D native because it sounds like it should but
in fact is not in the standard as far as I can see.


http://www.web3d.org/wiki/index.php/X3D/HTML_Implementations#CSS

x3dom does respond to some CSS:
https://examples.x3dom.org/example/x3dom_cssTrans.html
But I think it is restricted to 3D transformations and animations, and
only a Transform (and perhaps other grouping) nodes can be styled in
that way.
The X3D element can be styled as well. Dynamic changes to the style
may have to be applied to the generated Canvas element.


X-ITE has an accurate list of supported nodes:
http://create3000.de/x_ite/supported-nodes/#supported-components

It sticks very closely to the X3D spec. I am not aware of missing or
additional fields for supported nodes. In itself it does not expose
any X3D specific events to the DOM and  the X3D nodes are not part of
the DOM. They still can be accessed via the SAI programmatically after
getting a browser reference. There is my X_ITE_dom extension which
adds the X3D nodes to the DOM, and generates X3D specific events. In
fact, with X_ITE_dom all X3D out events become custom X3D specific DOM
events with names derived from the X3D event name.
The X3D element probably can be styled. Dynamic changes to the style
may have to be applied to the generated Canvas element.


Glad to help answer any questions which may arise,

-Andreas


On Wed, Dec 13, 2017 at 3:00 PM,  <x3d-public-request at web3d.org> wrote:
>
> Message: 1
> Date: Wed, 13 Dec 2017 09:39:31 -0800
> From: Don Brutzman <brutzman at nps.edu>
> To: Roy Walmsley <roy.walmsley at ntlworld.com>
> Cc: <x3d at web3d.org>, X3D Graphics public mailing list
>         <x3d-public at web3d.org>
> Subject: Re: [x3d-public] [x3d] Agenda for X3D WG Meeting Wednesday
>         13th December 2017
> Message-ID: <8c586ea5-bf61-ba0b-c95f-5173ecf2d3c2 at nps.edu>
> Content-Type: text/plain; charset="windows-1252"; format=flowed
>
> Today's X3D Working Group discussion is including review of various X3D statement implementations for X3DOM and X_ITE.
> http://www.web3d.org/wiki/index.php/X3D/HTML_Implementations
>
> Related work from a few years ago: conjecture that associated shared SAI methods providing values of broad authoring utility, that perhaps might be exposed to authors via direct ROUTE connections.
>
> http://www.web3d.org/x3d/content/examples/Basic/development/SceneNodePrototypeIndex.html
> http://www.web3d.org/x3d/content/examples/Basic/development/SceneNodePrototype.html
> http://www.web3d.org/x3d/content/examples/Basic/development/SceneNodePrototype.x3d
>
> ==================================================
> <meta name='title' content='SceneNodePrototype.x3d'/>
> <meta name='created' content='19 December 2000'/>
> <meta name='modified' content='14 November 2015'/>
> <meta name='description' content='Expose functionality of Browser class in Java/ECMAscript annexes of VRML 97 specification. Consider promotion to a native node in X3D/VRML 200x scenes.'/>
>
> <ProtoDeclare name='Scene'>
>    <ProtoInterface>
>         <!-- Standard browser attributes exposed via VRML 97 Script annexes -->
>         <field accessType='inputOnly' name='createVrmlFromString' type='SFString'/>
>         <field accessType='inputOnly' name='createVrmlFromURL' type='SFString'/>
>         <field accessType='outputOnly' name='createdVrmlNodes' type='MFNode'/>
>         <field accessType='outputOnly' name='currentFrameRate' type='SFFloat'/>
>         <field accessType='outputOnly' name='currentSpeed' type='SFFloat'/>
>         <field accessType='inputOnly' name='description' type='SFString'/>
>         <field accessType='inputOnly' name='evaluate' type='SFBool'/>
>         <field accessType='inputOnly' name='loadUrl' type='SFString'/>
>         <field accessType='inputOnly' name='loadUrlParameter' type='SFString'/>
>         <field accessType='outputOnly' name='name' type='SFString'/>
>         <field accessType='inputOnly' name='replaceWorld' type='MFNode'/>
>         <field accessType='outputOnly' name='version' type='SFString'/>
>         <field accessType='outputOnly' name='worldUrl' type='SFString'/>
>         <field accessType='inputOnly' name='addRoute' type='SFBool'/>
>         <field accessType='inputOnly' name='deleteRoute' type='SFBool'/>
>         <field accessType='inputOnly' name='fromNode' type='SFNode'/>
>         <field accessType='inputOnly' name='fromEventOut' type='SFString'/>
>         <field accessType='inputOnly' name='toNode' type='SFNode'/>
>         <field accessType='inputOnly' name='toEventIn' type='SFString'/>
>         <!-- Candidate additions -->
>         <field accessType='outputOnly' name='boundBackground' type='SFNode'/>
>         <field accessType='outputOnly' name='boundFog' type='SFNode'/>
>         <field accessType='outputOnly' name='boundGeoViewpoint' type='SFNode'/>
>         <field accessType='outputOnly' name='boundNavigationInfo' type='SFNode'/>
>         <field accessType='outputOnly' name='boundViewpoint' type='SFNode'/>
>         <field accessType='outputOnly' name='response' type='MFString'/>
>         <field accessType='inputOutput' name='dashboardVisible' type='SFBool' value='true'/>
>         <field accessType='inputOutput' name='pixelWidth' type='SFInt32' value='-1'/>
>         <field accessType='inputOutput' name='pixelHeight' type='SFInt32' value='-1'/>
>    </ProtoInterface>
> ==================================================
>
> Feedback welcome, thanks for considering the possibilities.
>
> 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 http://faculty.nps.edu/brutzman
>
>
>
> ------------------------------
>
> Subject: Digest Footer
>
> _______________________________________________
> x3d-public mailing list
> x3d-public at web3d.org
> http://web3d.org/mailman/listinfo/x3d-public_web3d.org
>
>
> ------------------------------
>
> End of x3d-public Digest, Vol 105, Issue 33
> *******************************************



-- 
Andreas Plesch
Waltham, MA 02453



More information about the x3d-public mailing list