[x3d-public] ECMAScript 6 X3D API

Joseph D Williams joedwil at earthlink.net
Sun Oct 31 16:55:41 PDT 2021


Looks like great stuff if I as a simple user of the x3d ecmascript SAI ever needed to know about it in order to create and use x3d Script node. 
All I want to know is will this example work. 


ISO/IEC 19775-2 Index page (web3d.org)

https://www.web3d.org/documents/specifications/19775-2/V3.3/index.html

ISO/IEC 19777-1 Edition 2 -- X3D ECMAScript binding (web3d.org)

https://www.web3d.org/documents/specifications/19777-1/V3.3/index.html
ISO/IEC 19776-1:2015 — X3D XML encoding — Index (web3d.org)
https://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/examples.html#ScriptingExample
Here is the example:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN"
  "http://www.web3d.org/specifications/x3d-3.0.dtd">

<X3D version='3.0' profile='Immersive'>
  <head>
    <meta name='filename' content='Scripting.x3d'/>
  </head>
  <Scene>
    <Script DEF='OpenVault'>
      <field name='openVault' type='SFTime' 
             accessType='inputOnly'/>
      <field name='combinationEntered' type='SFBool' 
             accessType='inputOnly'/>
      <field name='vaultUnlocked' type='SFTime' 
             accessType='outputOnly'/>
      <field name='unlocked' type='SFBool' value='false' 
             accessType='initializeOnly' />
      <![CDATA[
      ecmascript:
      function combinationEntered (value) {
        unlocked = value;
      }
      function openVault(value) {
      if (unlocked) vaultUnlocked = value;
      }
      ]]>
    </Script>
    <Shape>
      <Appearance>
        <Material diffuseColor='1 0 0'/>
      </Appearance>
      <Sphere/>
    </Shape>
    <Sound maxBack='1000' maxFront='1000' minBack='1000' minFront='1000'>
      <AudioClip DEF='Click' stopTime='1' 
        description='clicking sound' url='"click.wav"'/>
    </Sound>
    <TouchSensor DEF='TS'/>
    <ROUTE fromNode='TS' fromField='isOver' 
           toNode='OpenVault' toField='combinationEntered'/>
    <ROUTE fromNode='TS' fromField='touchTime' 
           toNode='OpenVault' toField='openVault'/>
    <ROUTE fromNode='OpenVault' fromField='vaultUnlocked' 
           toNode='Click' toField='startTime'/>
  </Scene>
</X3D>

Click here to view this example in a 3D scene window.

If already ok for some tools please tell me: 
How can we best be sure that when that ‘Click here’ in the spec or in this note gets made, that it works as described using any competent html Dom webGL ecmascript browser, not in a sandbox (at least show the geometry and retrieve that .wav), free to interact with the rest of our WWW. 

Thanks for all, 
Joe 


From: John Carlson
Sent: Sunday, October 31, 2021 1:16 PM
To: x3d-public at web3d.org
Subject: [x3d-public] ECMAScript 6 X3D API

More work done on es6x3d:

https://GitHub.com/coderextreme/es6x3d

Changes for MFString, and other MF work.

Still lots of work to do, including possible export to three.js

John

_______________________________________________
x3d-public mailing list
x3d-public at web3d.org
http://web3d.org/mailman/listinfo/x3d-public_web3d.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://web3d.org/pipermail/x3d-public_web3d.org/attachments/20211031/568cec46/attachment.html>


More information about the x3d-public mailing list