Difference between revisions of "Script-and-inputOutputField.x3d"

From Web3D.org
Jump to: navigation, search
(Using inputOuput Fields in scripts)
Line 1: Line 1:
Using inputOuput Fields in scripts
+
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
+
<X3D profile='Full' >
  <X3D profile='Full' >
+
 
   <Scene DEF='scene'>
 
   <Scene DEF='scene'>
 
     <Viewpoint position='20 0 40'/>
 
     <Viewpoint position='20 0 40'/>
Line 13: Line 12:
 
       <field accessType='inputOutput' name='foo' type='SFFloat' value='5'/>
 
       <field accessType='inputOutput' name='foo' type='SFFloat' value='5'/>
 
       <field accessType='inputOnly' name='readFoo' type='SFTime'/><![CDATA[ecmascript:
 
       <field accessType='inputOnly' name='readFoo' type='SFTime'/><![CDATA[ecmascript:
 +
 
   //-----------------------------
 
   //-----------------------------
 
   function initialize (value) {
 
   function initialize (value) {
Line 18: Line 18:
 
     text.string[0] = line;
 
     text.string[0] = line;
 
   }
 
   }
 +
 
   //-----------------------------
 
   //-----------------------------
 
   function readFoo (value) {     
 
   function readFoo (value) {     
 
   text.string[1] = 'readFoo called: TRUE, value: ' + foo;
 
   text.string[1] = 'readFoo called: TRUE, value: ' + foo;
 
   }       
 
   }       
 +
 
   //-----------------------------
 
   //-----------------------------
 
   function foo (value) {     
 
   function foo (value) {     
 
   text.string[3] = 'foo function called: TRUE; ' + value;
 
   text.string[3] = 'foo function called: TRUE; ' + value;
 
   }       
 
   }       
 +
 
   //-----------------------------
 
   //-----------------------------
 
   function set_foo (value) {     
 
   function set_foo (value) {     
 
   text.string[4] = 'set_foo function called: TRUE; ' + value;
 
   text.string[4] = 'set_foo function called: TRUE; ' + value;
 
   }       
 
   }       
 +
 
   //-----------------------------
 
   //-----------------------------
 
   function foo_changed (value) {     
 
   function foo_changed (value) {     
Line 42: Line 46:
 
       </field>
 
       </field>
 
       <field accessType='inputOnly' name='fooCatcher' type='SFFloat'/><![CDATA[ecmascript:
 
       <field accessType='inputOnly' name='fooCatcher' type='SFFloat'/><![CDATA[ecmascript:
 +
 
   //-----------------------
 
   //-----------------------
 
   function fooCatcher (value) {
 
   function fooCatcher (value) {
 
     text.string[2] = 'Foo value send: TRUE; value: ' + value;
 
     text.string[2] = 'Foo value send: TRUE; value: ' + value;
 
   }
 
   }
 +
 
   ]]>
 
   ]]>
 
     </Script>
 
     </Script>
Line 52: Line 58:
 
     <ROUTE fromNode='s1' fromField='foo_changed' toNode='s2' toField='fooCatcher'/>
 
     <ROUTE fromNode='s1' fromField='foo_changed' toNode='s2' toField='fooCatcher'/>
 
   </Scene>
 
   </Scene>
  </X3D>
+
</X3D>
 +
 
 +
== Browser Results ==
 +
{| class="wikitable" border="1"
 +
|-
 +
! Browser
 +
! Version
 +
! Result
 +
! Notes
 +
|-
 +
| BS Contact
 +
| 7.107
 +
| Not Expected
 +
| No objects showing, global not supported
 +
|-
 +
| FreeWRL
 +
|
 +
| Untested
 +
|
 +
 
 +
|-
 +
| Octaga
 +
| 2.2.0.12
 +
| Expected
 +
|
 +
|-
 +
| Instant Reality
 +
| 2.0.0_beta4
 +
| Not Expected
 +
| Both spheres the same intensity, expect attenuation not supported
 +
|
 +
|-
 +
| Vivaty
 +
| 2.1
 +
| Expected
 +
|
 +
|-
 +
| Xj3D
 +
| 2_M1_DEV_2008-06_02
 +
| Expected
 +
|
 +
|}

Revision as of 21:08, 6 August 2008

<?xml version="1.0" encoding="UTF-8"?> <X3D profile='Full' >

 <Scene DEF='scene'>
   <Viewpoint position='20 0 40'/>
   <Shape>
     <Text DEF='text' string='"Initialize called: FALSE" "readFoo() called: FALSE" "foo value send: FALSE" "foo function called: FALSE" "set_foo function called: FALSE" "foo_changed function called: FALSE"'/>
   </Shape>
   <Script DEF='s1' directOutput='true'>
     <field accessType='initializeOnly' name='text' type='SFNode'>
       <Text USE='text'/>
     </field>
     <field accessType='inputOutput' name='foo' type='SFFloat' value='5'/>
     <field accessType='inputOnly' name='readFoo' type='SFTime'/><![CDATA[ecmascript:
 //-----------------------------
 function initialize (value) {
   line = 'Initialized called: TRUE; foo value: ' + foo;
   text.string[0] = line;
  }
 //-----------------------------
 function readFoo (value) {     
  text.string[1] = 'readFoo called: TRUE, value: ' + foo;
 }       
 //-----------------------------
 function foo (value) {     
  text.string[3] = 'foo function called: TRUE; ' + value;
 }       
 //-----------------------------
 function set_foo (value) {     
  text.string[4] = 'set_foo function called: TRUE; ' + value;
 }       
 //-----------------------------
 function foo_changed (value) {     
  text.string[5] = 'foo_changed function called: TRUE; ' + value;
 }       
 ]]>
   </Script>
   <TimeSensor DEF='ts' cycleInterval='3' loop='true'/>
   <Script DEF='s2' directOutput='true'>
     <field accessType='initializeOnly' name='text' type='SFNode'>
       <Text USE='text'/>
     </field>
     <field accessType='inputOnly' name='fooCatcher' type='SFFloat'/><![CDATA[ecmascript:
 //-----------------------
 function fooCatcher (value) {
   text.string[2] = 'Foo value send: TRUE; value: ' + value;
 }
 ]]>
   </Script>
   <ROUTE fromNode='ts' fromField='fraction_changed' toNode='s1' toField='set_foo'/>
   <ROUTE fromNode='ts' fromField='cycleTime' toNode='s1' toField='readFoo'/>
   <ROUTE fromNode='s1' fromField='foo_changed' toNode='s2' toField='fooCatcher'/>
 </Scene>

</X3D>

Browser Results

Browser Version Result Notes
BS Contact 7.107 Not Expected No objects showing, global not supported
FreeWRL Untested
Octaga 2.2.0.12 Expected
Instant Reality 2.0.0_beta4 Not Expected Both spheres the same intensity, expect attenuation not supported
Vivaty 2.1 Expected
Xj3D 2_M1_DEV_2008-06_02 Expected