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

From Web3D.org
Jump to: navigation, search
(Using inputOuput Fields in scripts)
Line 1: Line 1:
 
  <?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 17: Line 17:
 
     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 45: Line 41:
 
       </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 57: Line 51:
 
     <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 ==
 
== Browser Results ==

Revision as of 21:09, 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