<?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 profile='Immersiveversion='3.0xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation=' http://www.web3d.org/specifications/x3d-3.0.xsd '>
<head>
<meta name='titlecontent='Example19.x3d'/>
<meta name='creatorcontent='Don Brutzman'/>
<meta name='createdcontent='24 May 2000'/>
<meta name='modifiedcontent='25 February 2007'/>
<meta name='descriptioncontent='VRML 97 specification example: Execution model demonstrated. Click ball to see script-generated text appear.'/>
<meta name='referencecontent='original/exampleD_19.wrl'/>
<meta name='referencecontent=' http://www.web3d.org/technicalinfo/specifications/vrml97/part1/examples.html#D.19 '/>
<meta name='identifiercontent=' http://www.web3d.org/x3d/content/examples/Basic/Vrml97Specification/Example19.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent='../license.html'/>
</head>
<!--

Index for DEF nodes: Collector, Result, Script1, Script2, Script3, Script4, Script5, Script6, Script7, TS
Index for Viewpoint image: Viewpoint_1
-->
<Scene>
<!-- TS ROUTE:  [from touchTime to Script1.touchTime ] -->
<TouchSensor DEF='TSdescription='touch to trigger more events'/>
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<!-- Script1 ROUTEs:  [from TS.touchTime to touchTime ] [from toScript2 to Script2.fromScript1 ] [from toScript3 to Script3.fromScript1 ] [from string to Collector.fromString ] -->
<Script DEF='Script1'>
<field name='touchTimetype='SFTimeaccessType='inputOnly'/>
<field name='toScript2type='SFBoolaccessType='outputOnly'/>
<field name='toScript3type='SFBoolaccessType='outputOnly'/>
<field name='stringtype='SFStringaccessType='outputOnly'/>
<![CDATA[
      ecmascript:

function touchTime()
{
	toScript2 = TRUE;
}
function eventsProcessed()
{
	string = 'Script1.eventsProcessed';
	toScript3 = TRUE;
}
    
    
]]>
</Script>
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<!-- Script2 ROUTEs:  [from Script1.toScript2 to fromScript1 ] [from toScript4 to Script4.fromScript2 ] [from string to Collector.fromString ] -->
<Script DEF='Script2'>
<field name='fromScript1type='SFBoolaccessType='inputOnly'/>
<field name='toScript4type='SFBoolaccessType='outputOnly'/>
<field name='stringtype='SFStringaccessType='outputOnly'/>
<![CDATA[
      ecmascript:

function fromScript1() { }

function eventsProcessed()
{
	string = 'Script2.eventsProcessed';
	toScript4 = TRUE;
}
    
    
]]>
</Script>
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<!-- Script3 ROUTEs:  [from Script1.toScript3 to fromScript1 ] [from toScript5 to Script5.fromScript3 ] [from toScript6 to Script6.fromScript3 ] [from string to Collector.fromString ] -->
<Script DEF='Script3'>
<field name='fromScript1type='SFBoolaccessType='inputOnly'/>
<field name='toScript5type='SFBoolaccessType='outputOnly'/>
<field name='toScript6type='SFBoolaccessType='outputOnly'/>
<field name='stringtype='SFStringaccessType='outputOnly'/>
<![CDATA[
      ecmascript:

function fromScript1()
{
	toScript5 = TRUE;
}
function eventsProcessed()
{
	string = 'Script3.eventsProcessed';
	toScript6 = TRUE;
}
    
    
]]>
</Script>
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<!-- Script4 ROUTE:  [from Script2.toScript4 to fromScript2 ] -->
<Script DEF='Script4'>
<field name='fromScript2type='SFBoolaccessType='inputOnly'/>
<![CDATA[
      ecmascript:

function fromScript2() { }
    
    
]]>
</Script>
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<!-- Script5 ROUTE:  [from Script3.toScript5 to fromScript3 ] -->
<Script DEF='Script5'>
<field name='fromScript3type='SFBoolaccessType='inputOnly'/>
<![CDATA[
      ecmascript:

function fromScript3() { }
    
    
]]>
</Script>
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<!-- Script6 ROUTEs:  [from Script3.toScript6 to fromScript3 ] [from toScript7 to Script7.fromScript6 ] [from string to Collector.fromString ] -->
<Script DEF='Script6'>
<field name='fromScript3type='SFBoolaccessType='inputOnly'/>
<field name='toScript7type='SFBoolaccessType='outputOnly'/>
<field name='stringtype='SFStringaccessType='outputOnly'/>
<![CDATA[
      ecmascript:

function fromScript3()
{
	toScript7 = TRUE;
}
function eventsProcessed()
{
	string = 'Script6.eventsProcessed';
}
    
    
]]>
</Script>
<!-- Warning: VRML97-style scripting, not X3D Scene Authoring Interface (SAI) -->
<!-- Script7 ROUTE:  [from Script6.toScript7 to fromScript6 ] -->
<Script DEF='Script7'>
<field name='fromScript6type='SFBoolaccessType='inputOnly'/>
<![CDATA[
      ecmascript:

function fromScript6 () { }
    
    
]]>
</Script>
<!-- Display the results -->
<!-- Collector ROUTEs:  [from Script1.string to fromString ] [from Script2.string to fromString ] [from Script3.string to fromString ] [from Script6.string to fromString ] [from string to Result.string ] -->
<Script DEF='Collector'>
<field name='stringtype='MFStringaccessType='outputOnly'/>
<field name='fromStringtype='SFStringaccessType='inputOnly'/>
<![CDATA[
      ecmascript:

function initialize()
{
	string[0] = 'Event Sequence:';
}
function fromString(s)
{
	i = string.length;
	string[i] = '('+i+') '+s+' occurred';
}

    
]]>
</Script>
<Transform translation='0 -6 0'>
<Transform translation='-2 2 0'>
<Shape>
<Appearance>
<Material diffuseColor='0 0.6 0'/>
</Appearance>
<Sphere/>
</Shape>
</Transform>
<Shape>
<!-- Result ROUTE:  [from Collector.string to string ] -->
<Text DEF='Resultsolid='true'>
<FontStyle justify='"BEGIN" "END"'/>
</Text>
</Shape>
</Transform>
<Viewpoint description='Touch ball to trigger eventsposition='7 -1 18'/>
<ROUTE fromNode='TSfromField='touchTimetoNode='Script1toField='touchTime'/>
<ROUTE fromNode='Script1fromField='toScript2toNode='Script2toField='fromScript1'/>
<ROUTE fromNode='Script1fromField='toScript3toNode='Script3toField='fromScript1'/>
<ROUTE fromNode='Script2fromField='toScript4toNode='Script4toField='fromScript2'/>
<ROUTE fromNode='Script3fromField='toScript5toNode='Script5toField='fromScript3'/>
<ROUTE fromNode='Script3fromField='toScript6toNode='Script6toField='fromScript3'/>
<ROUTE fromNode='Script6fromField='toScript7toNode='Script7toField='fromScript6'/>
<ROUTE fromNode='Script1fromField='stringtoNode='CollectortoField='fromString'/>
<ROUTE fromNode='Script2fromField='stringtoNode='CollectortoField='fromString'/>
<ROUTE fromNode='Script3fromField='stringtoNode='CollectortoField='fromString'/>
<ROUTE fromNode='Script6fromField='stringtoNode='CollectortoField='fromString'/>
<ROUTE fromNode='CollectorfromField='stringtoNode='ResulttoField='string'/>
</Scene>
</X3D>
<!--

Index for DEF nodes: Collector, Result, Script1, Script2, Script3, Script4, Script5, Script6, Script7, TS
Index for Viewpoint image: Viewpoint_1
-->

<!-- Tag color codes: <Node DEF='idName' attribute='value'/> -->