<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "https://www.web3d.org/specifications/x3d-3.3.dtd">
<X3D profile='Immersive'  version='3.3 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' https://www.web3d.org/specifications/x3d-3.3.xsd ' >
<head>
<meta name='titlecontent=' TimeTriggerTest.x3d '/>
<meta name='descriptioncontent='Test of TimeTrigger node.'/>
<meta name='createdcontent='8 October 2007'/>
<meta name='modifiedcontent='20 October 2019'/>
<meta name='creatorcontent='Leonard Daly and Don Brutzman'/>
<meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter09EventUtilitiesScripting/TimeTriggerTest.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.3, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../license.html'/>
</head>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: Filter, TextTouched, TraceScript, Trigger

Index for Viewpoint node: Viewpoint_1
-->
<Scene>
<WorldInfo title='TimeTriggerTest.x3d'/>
<Background skyColor='1 1 1'/>
<Viewpoint description='TimeTrigger testposition='0 0 7'/>
<Transform>
<Shape>
<Appearance>
<Material diffuseColor='.6 0 .8'/>
</Appearance>
<Text string='"Touch text to print" "output values on console"'>
<FontStyle justify='"MIDDLE" "MIDDLE"'/>
</Text>
</Shape>
<!-- Selectable Text design pattern has transparent Box and TouchSensor description as a tooltip -->
<Shape>
<Box size='9 2 .001'/>
<Appearance>
<Material transparency='1'/>
</Appearance>
</Shape>
<!-- This TouchSensor only reacts to user clicking on the sibling Shape and Text, because it is under a parent Transform grouping node -->
<!-- ROUTE information for TextTouched node:  [from isActive to Filter.set_boolean ] [from isActive to TraceScript.printBoolean ] -->
<TouchSensor DEF='TextToucheddescription='touch to activate'/>
</Transform>
<!-- ROUTE information for Filter node:  [from TextTouched.isActive to set_boolean ] [from inputTrue to Trigger.set_boolean ] -->
<BooleanFilter DEF='Filter'/>

< ROUTE  fromNode=' TextTouched' fromField='isActive' toNode=' Filter' toField='set_boolean'/>
<!-- ROUTE information for Trigger node:  [from Filter.inputTrue to set_boolean ] [from triggerTime to TraceScript.printTimestamp ] -->
<TimeTrigger DEF='Trigger'/>

< ROUTE  fromNode=' Filter' fromField='inputTrue' toNode=' Trigger' toField='set_boolean'/>
<!-- ROUTE information for TraceScript node:  [from Trigger.triggerTime to printTimestamp ] [from TextTouched.isActive to printBoolean ] -->
<Script DEF='TraceScript'>
<field name='printBooleantype='SFBoolaccessType='inputOnly'/>
<field name='printTimestamptype='SFTimeaccessType='inputOnly'/>
<![CDATA[
      
ecmascript:
    function printBoolean (value) {
      Browser.println ('TouchSensor isActive="' + value + '"');
    }
    function printTimestamp (value) {
      Browser.println ('====================================' +  '');
      Browser.println ('Trigger triggerTime="' + value + '"');
    }

    
]]>
</Script>
< ROUTE  fromNode=' Trigger' fromField='triggerTime' toNode=' TraceScript' toField='printTimestamp'/>
< ROUTE  fromNode=' TextTouched' fromField='isActive' toNode=' TraceScript' toField='printBoolean'/>
</Scene>
</X3D>
<!--

to top <!-- Event Graph ROUTE Table shows event connections -->
 
<!-- Index for DEF nodes: Filter, TextTouched, TraceScript, Trigger

Index for Viewpoint node: Viewpoint_1
-->

Event Graph ROUTE Table entries with 4 ROUTE connections total, showing X3D event-model relationships for this scene.

Each row shows an event cascade that may occur during a single timestamp interval between frame renderings, as part of the X3D execution model.

TextTouched
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
Filter
BooleanFilter
set_boolean
SFBool

 
 
then
Filter
BooleanFilter
inputTrue
SFBool

ROUTE
event to
(2)
Trigger
TimeTrigger
set_boolean
SFBool

 
 
then
Trigger
TimeTrigger
triggerTime
SFTime

ROUTE
event to
(3)
TraceScript
Script
printTimestamp
SFTime
TextTouched
TouchSensor
isActive
SFBool

ROUTE
event to
(1)
TraceScript
Script
printBoolean
SFBool



-->

<!-- Online at
https://www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter09EventUtilitiesScripting/TimeTriggerTestIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/X3dForWebAuthors/Chapter09EventUtilitiesScripting/TimeTriggerTest.x3d -->

<!-- Color legend: X3D terminology <X3dNode DEF='idName' field='value'/> matches XML terminology <XmlElement DEF='idName' attribute='value'/>
(Light-blue background: event-based behavior node or statement) (Grey background inside box: inserted documentation) (Magenta background: X3D Extensibility)
-->

to top <!-- For additional help information about X3D scenes, please see X3D Tooltips, X3D Resources, and X3D Scene Authoring Hints. -->