<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.3//EN" "http://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 =' http://www.web3d.org/specifications/x3d-3.3.xsd '>
<head>
<meta name='titlecontent='FlyingTextExample.x3d'/>
<meta name='descriptioncontent='Prototype definition for a flying text message. Waypoints, time intervals, cycleInterval and text message can be overridden.'/>
<meta name='creatorcontent='Murat Onder'/>
<meta name='createdcontent='2 June 2004'/>
<meta name='modifiedcontent='9 July 2018'/>
<meta name='referencecontent='FlyingTextExample.x3d'/>
<meta name='identifiercontent=' https://savage.nps.edu/Savage/Tools/Animation/FlyingTextExample.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../../license.html'/>
</head>
<!-- -->
<Scene>
<ExternProtoDeclare name='DoubleClickTouchSensorappinfo='DoubleClickTouchSensor functionality activates when user double clicks (or double selects) within maxDelayInterval'
  url=' "../../Savage/Tools/Animation/DoubleClickTouchSensorPrototype.x3d#DoubleClickTouchSensor" "../../../Savage/Tools/Animation/DoubleClickTouchSensorPrototype.x3d#DoubleClickTouchSensor" "https://savage.nps.edu/Savage/Tools/Animation/DoubleClickTouchSensorPrototype.x3d#DoubleClickTouchSensor" "../../../Savage/Tools/Animation/DoubleClickTouchSensorPrototype.wrl#DoubleClickTouchSensor" "../../Savage/Tools/Animation/DoubleClickTouchSensorPrototype.wrl#DoubleClickTouchSensor" "https://savage.nps.edu/Savage/Tools/Animation/DoubleClickTouchSensorPrototype.wrl#DoubleClickTouchSensor" '>
<field name='descriptiontype='SFStringaccessType='inputOutput'
 appinfo='describe the purpose of this sensor'/>

<field name='maxDelayIntervaltype='SFTimeaccessType='initializeOnly'
 appinfo='seconds'/>

<field name='enabledtype='SFBoolaccessType='inputOutput'/>
<field name='isActivetype='SFBoolaccessType='outputOnly'/>
<field name='isOvertype='SFBoolaccessType='outputOnly'/>
<field name='touchTimetype='SFTimeaccessType='outputOnly'
 appinfo='seconds'/>

<field name='hitPoint_changedtype='SFVec3faccessType='outputOnly'/>
<field name='hitNormal_changedtype='SFVec3faccessType='outputOnly'/>
<field name='hitTexCoord_changedtype='SFVec2faccessType='outputOnly'/>
<field name='metadatatype='SFNodeaccessType='initializeOnly'/>
<field name='traceEnabledtype='SFBoolaccessType='initializeOnly'/>
</ExternProtoDeclare>
<ProtoInstance name='DoubleClickTouchSensorDEF='ExampleDoubleClickTouchSensor'>
<fieldValue name='descriptionvalue='double click to initiate time-delayed event'/>
<fieldValue name='maxDelayIntervalvalue='1'/>
</ProtoInstance>
<ExternProtoDeclare name='FlyingTextappinfo='Visualize message transfer between two points as flying text'
  url=' "../../../Savage/Tools/Animation/FlyingTextPrototype.x3d#FlyingText" "https://savage.nps.edu/Savage/Tools/Animation/FlyingTextPrototype.x3d#FlyingText" "../../../Savage/Tools/Animation/FlyingTextPrototype.wrl#FlyingText" "https://savage.nps.edu/Savage/Tools/Animation/FlyingTextPrototype.wrl#FlyingText" '>
<field name='waypointstype='MFVec3faccessType='initializeOnly'/>
<field name='set_waypointstype='MFVec3faccessType='inputOnly'/>
<field name='timeIntervalstype='MFTimeaccessType='initializeOnly'/>
<field name='set_timeIntervalstype='MFTimeaccessType='inputOnly'/>
<field name='textMessagetype='MFStringaccessType='initializeOnly'/>
<field name='set_textMessagetype='MFStringaccessType='inputOnly'/>
<field name='visibletype='SFBoolaccessType='initializeOnly'/>
<field name='set_visibletype='SFBoolaccessType='inputOnly'/>
<field name='looptype='SFBoolaccessType='initializeOnly'/>
<field name='axisOfRotationtype='SFVec3faccessType='initializeOnly'/>
<field name='timeSensorEnabledtype='SFBoolaccessType='initializeOnly'/>
<field name='startTimetype='SFTimeaccessType='inputOutput'/>
<field name='set_startTimetype='SFTimeaccessType='inputOnly'/>
<field name='stopTimetype='SFTimeaccessType='inputOutput'/>
<field name='set_stopTimetype='SFTimeaccessType='inputOnly'/>
<field name='traceEnabledtype='SFBoolaccessType='initializeOnly'/>
<field name='textDiffuseColortype='SFColoraccessType='inputOutput'/>
<field name='fontStyletype='SFNodeaccessType='inputOutput'/>
</ExternProtoDeclare>
<Background groundAngle='1.309 1.570796groundColor='.1 .1 0 .5 .25 .2 .6 .6 .2skyAngle='1.309 1.571skyColor='.7 .3 0 .6 .4 0 1 1 0'/>
<Transform DEF='ProtoInstanceTransform'>
<!-- ROUTE information for FlyingTextInstance node:  [from TouchRedSphere.touchTime to set_startTime ] -->
<ProtoInstance name='FlyingTextDEF='FlyingTextInstance'>
<fieldValue name='waypointsvalue='0 0 0 -4 0 0 4 2 -2 0 -2 2 0 0 0'/>
<fieldValue name='timeIntervalsvalue='5 4 1 3'/>
<fieldValue name='textMessagevalue='"flying" "text"'/>
</ProtoInstance>
</Transform>
<Group>
<!-- ROUTE information for TouchRedSphere node:  [from touchTime to FlyingTextInstance.set_startTime ] -->
<TouchSensor DEF='TouchRedSpheredescription='touch to start animation'/>
<ROUTE fromNode='TouchRedSpherefromField='touchTimetoNode='FlyingTextInstancetoField='set_startTime'/>
<Transform translation='-4 0 0'>
<Shape>
<Sphere radius='.2'/>
<Appearance>
<Material diffuseColor='1 0 0'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='4 2 -2'>
<Shape>
<Sphere radius='.2'/>
<Appearance>
<Material diffuseColor='0 1 0'/>
</Appearance>
</Shape>
</Transform>
<Transform translation='0 -2 2'>
<Shape>
<Sphere radius='.2'/>
<Appearance>
<Material diffuseColor='0 0 1'/>
</Appearance>
</Shape>
</Transform>
</Group>
</Scene>
</X3D>
<!--

Index for ExternProtoDeclare definitions : DoubleClickTouchSensor, FlyingText

Index for DEF nodes : ExampleDoubleClickTouchSensor, FlyingTextInstance, ProtoInstanceTransform, TouchRedSphere
-->

<!-- Color key: <X3dNode DEF='idName' field='value'/> matches <XmlElement DEF='idName' attribute='value'/>
(Light blue background: behavior node) (Grey background: inserted documentation) (Magenta background: X3D Extensibility)
    <Prototype name='ProtoName'> <field name='fieldName'/> </Prototype> -->

<!-- Additional help information about X3D scenes: X3D Resources, X3D Scene Authoring Hints and X3D Tooltips -->