<?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='Interchange' version='3.0 xmlns:xsd='http://www.w3.org/2001/XMLSchema-instance' xsd:noNamespaceSchemaLocation =' http://www.web3d.org/specifications/x3d-3.0.xsd '>
<head>
<meta name='titlecontent='Smoke'/>
<meta name='descriptioncontent='Animated smoke'/>
<meta name='creatorcontent='Michael Martin'/>
<meta name='createdcontent='10 September 2004'/>
<meta name='modifiedcontent='14 January 2014'/>
<meta name='subjectcontent='smoke'/>
<meta name='identifiercontent=' https://savage.nps.edu/Savage/Scenarios/TankManeuver/Smoke.x3d '/>
<meta name='generatorcontent='X3D-Edit 3.2, https://savage.nps.edu/X3D-Edit'/>
<meta name='licensecontent=' ../../license.html'/>
</head>
<!-- -->
<Scene>
<!-- ROUTE information for smokeClock node:  [from fraction_changed to smokePos.set_fraction ] [from fraction_changed to smokeTrans.set_fraction ] [from fraction_changed to smokeScale.set_fraction ] [from fraction_changed to smokePos2.set_fraction ] [from fraction_changed to smokeTrans2.set_fraction ] [from fraction_changed to smokeScale2.set_fraction ] [from fraction_changed to smokePos3.set_fraction ] [from fraction_changed to smokeTrans3.set_fraction ] [from fraction_changed to smokeScale3.set_fraction ] [from fraction_changed to smokePos4.set_fraction ] [from fraction_changed to smokeTrans4.set_fraction ] [from fraction_changed to smokeScale4.set_fraction ] -->
<TimeSensor DEF='smokeClockcycleInterval='3loop='true'/>
<Transform translation='.1 0 .1'>
<!-- ROUTE information for smokePos node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeBall.set_translation ] -->
<PositionInterpolator DEF='smokePoskey='0 .99keyValue='0 0 0 0 2 0'/>
<!-- ROUTE information for smokeScale node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeBall.set_scale ] -->
<PositionInterpolator DEF='smokeScalekey='0 .99keyValue='1 1 1 2 2 2'/>
<!-- ROUTE information for smokeTrans node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeMat.set_transparency ] -->
<ScalarInterpolator DEF='smokeTranskey='0 .99keyValue='0 1'/>
<!-- ROUTE information for SmokeBall node:  [from smokePos.value_changed to set_translation ] [from smokeScale.value_changed to set_scale ] -->
<Transform DEF='SmokeBall'>
<Shape>
<Appearance>
<!-- ROUTE information for SmokeMat node:  [from smokeTrans.value_changed to set_transparency ] -->
<Material DEF='SmokeMatdiffuseColor='0 0 0'/>
</Appearance>
<Sphere radius='.5'/>
</Shape>
</Transform>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokePostoField='set_fraction'/>
<ROUTE fromNode='smokePosfromField='value_changedtoNode='SmokeBalltoField='set_translation'/>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokeTranstoField='set_fraction'/>
<ROUTE fromNode='smokeTransfromField='value_changedtoNode='SmokeMattoField='set_transparency'/>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokeScaletoField='set_fraction'/>
<ROUTE fromNode='smokeScalefromField='value_changedtoNode='SmokeBalltoField='set_scale'/>
</Transform>
<Transform translation='-.1 0 .1'>
<!-- ROUTE information for smokePos2 node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeBall2.set_translation ] -->
<PositionInterpolator DEF='smokePos2key='0 .5 .5 .99keyValue='0 1 0 0 2 0 0 0 0 0 1 0'/>
<!-- ROUTE information for smokeScale2 node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeBall2.set_scale ] -->
<PositionInterpolator DEF='smokeScale2key='0 .5 .5 .99keyValue='1.5 1.5 1.5 2 2 2 1 1 1 1.5 1.5 1.5'/>
<!-- ROUTE information for smokeTrans2 node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeMat2.set_transparency ] -->
<ScalarInterpolator DEF='smokeTrans2key='0 .5 .5 .99keyValue='.5 1.0 0 .5'/>
<!-- ROUTE information for SmokeBall2 node:  [from smokePos2.value_changed to set_translation ] [from smokeScale2.value_changed to set_scale ] -->
<Transform DEF='SmokeBall2'>
<Shape>
<Appearance>
<!-- ROUTE information for SmokeMat2 node:  [from smokeTrans2.value_changed to set_transparency ] -->
<Material DEF='SmokeMat2diffuseColor='0 0 0'/>
</Appearance>
<Sphere radius='.5'/>
</Shape>
</Transform>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokePos2toField='set_fraction'/>
<ROUTE fromNode='smokePos2fromField='value_changedtoNode='SmokeBall2toField='set_translation'/>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokeTrans2toField='set_fraction'/>
<ROUTE fromNode='smokeTrans2fromField='value_changedtoNode='SmokeMat2toField='set_transparency'/>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokeScale2toField='set_fraction'/>
<ROUTE fromNode='smokeScale2fromField='value_changedtoNode='SmokeBall2toField='set_scale'/>
</Transform>
<Transform translation='-.1 0 -.1'>
<!-- ROUTE information for smokePos3 node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeBall3.set_translation ] -->
<PositionInterpolator DEF='smokePos3key='0 .25 .25 .99keyValue='0 1.5 0 0 2 0 0 0 0 0 1.5 0'/>
<!-- ROUTE information for smokeScale3 node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeBall3.set_scale ] -->
<PositionInterpolator DEF='smokeScale3key='0 .25 .25 .99keyValue='1.75 1.75 1.75 2 2 2 1 1 1 1.75 1.75 1.75'/>
<!-- ROUTE information for smokeTrans3 node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeMat3.set_transparency ] -->
<ScalarInterpolator DEF='smokeTrans3key='0 .25 .25 .99keyValue='.75 1.0 0 .75'/>
<!-- ROUTE information for SmokeBall3 node:  [from smokePos3.value_changed to set_translation ] [from smokeScale3.value_changed to set_scale ] -->
<Transform DEF='SmokeBall3'>
<Shape>
<Appearance>
<!-- ROUTE information for SmokeMat3 node:  [from smokeTrans3.value_changed to set_transparency ] -->
<Material DEF='SmokeMat3diffuseColor='0 0 0'/>
</Appearance>
<Sphere radius='.5'/>
</Shape>
</Transform>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokePos3toField='set_fraction'/>
<ROUTE fromNode='smokePos3fromField='value_changedtoNode='SmokeBall3toField='set_translation'/>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokeTrans3toField='set_fraction'/>
<ROUTE fromNode='smokeTrans3fromField='value_changedtoNode='SmokeMat3toField='set_transparency'/>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokeScale3toField='set_fraction'/>
<ROUTE fromNode='smokeScale3fromField='value_changedtoNode='SmokeBall3toField='set_scale'/>
</Transform>
<Transform translation='.1 0 -.1'>
<!-- ROUTE information for smokePos4 node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeBall4.set_translation ] -->
<PositionInterpolator DEF='smokePos4key='0 .75 .75 .99keyValue='0 .5 0 0 2 0 0 0 0 0 .5 0'/>
<!-- ROUTE information for smokeScale4 node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeBall4.set_scale ] -->
<PositionInterpolator DEF='smokeScale4key='0 .75 .75 .99keyValue='1.25 1.25 1.25 2 2 2 1 1 1 1.25 1.25 1.25'/>
<!-- ROUTE information for smokeTrans4 node:  [from smokeClock.fraction_changed to set_fraction ] [from value_changed to SmokeMat4.set_transparency ] -->
<ScalarInterpolator DEF='smokeTrans4key='0 .75 .75 .99keyValue='.25 1.0 0 .25'/>
<!-- ROUTE information for SmokeBall4 node:  [from smokePos4.value_changed to set_translation ] [from smokeScale4.value_changed to set_scale ] -->
<Transform DEF='SmokeBall4'>
<Shape>
<Appearance>
<!-- ROUTE information for SmokeMat4 node:  [from smokeTrans4.value_changed to set_transparency ] -->
<Material DEF='SmokeMat4diffuseColor='0 0 0'/>
</Appearance>
<Sphere radius='.5'/>
</Shape>
</Transform>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokePos4toField='set_fraction'/>
<ROUTE fromNode='smokePos4fromField='value_changedtoNode='SmokeBall4toField='set_translation'/>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokeTrans4toField='set_fraction'/>
<ROUTE fromNode='smokeTrans4fromField='value_changedtoNode='SmokeMat4toField='set_transparency'/>
<ROUTE fromNode='smokeClockfromField='fraction_changedtoNode='smokeScale4toField='set_fraction'/>
<ROUTE fromNode='smokeScale4fromField='value_changedtoNode='SmokeBall4toField='set_scale'/>
</Transform>
</Scene>
</X3D>
<!--

Index for DEF nodes : SmokeBall, SmokeBall2, SmokeBall3, SmokeBall4, smokeClock, SmokeMat, SmokeMat2, SmokeMat3, SmokeMat4, smokePos, smokePos2, smokePos3, smokePos4, smokeScale, smokeScale2, smokeScale3, smokeScale4, smokeTrans, smokeTrans2, smokeTrans3, smokeTrans4
-->

<!-- 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)
-->

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