<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://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='https://www.web3d.org/specifications/x3d-3.0.xsd'>
  <head>
    <meta content='Smoke' name='title'/>
    <meta content='Animated smoke' name='description'/>
    <meta content='Michael Martin' name='creator'/>
    <meta content='10 September 2004' name='created'/>
    <meta content='20 October 2019' name='modified'/>
    <meta content='smoke' name='subject'/>
    <meta content='https://www.web3d.org/x3d/content/examples/Savage/Scenarios/TankManeuver/Smoke.x3d' name='identifier'/>
    <meta content='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit' name='generator'/>
    <meta content='../../license.html' name='license'/>
  </head>
  <Scene>
    <WorldInfo title='Smoke'/>
    <TimeSensor DEF='smokeClock' cycleInterval='3' loop='true'/>
    <Transform translation='.1 0 .1'>
      <PositionInterpolator DEF='smokePos' key='0 .99' keyValue='0 0 0 0 2 0'/>
      <PositionInterpolator DEF='smokeScale' key='0 .99' keyValue='1 1 1 2 2 2'/>
      <ScalarInterpolator DEF='smokeTrans' key='0 .99' keyValue='0 1'/>
      <Transform DEF='SmokeBall'>
        <Shape>
          <Appearance>
            <Material DEF='SmokeMat' diffuseColor='0 0 0'/>
          </Appearance>
          <Sphere radius='.5'/>
        </Shape>
      </Transform>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokePos'/>
      <ROUTE fromField='value_changed' fromNode='smokePos' toField='set_translation' toNode='SmokeBall'/>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokeTrans'/>
      <ROUTE fromField='value_changed' fromNode='smokeTrans' toField='set_transparency' toNode='SmokeMat'/>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokeScale'/>
      <ROUTE fromField='value_changed' fromNode='smokeScale' toField='set_scale' toNode='SmokeBall'/>
    </Transform>
    <Transform translation='-.1 0 .1'>
      <PositionInterpolator DEF='smokePos2' key='0 .5 .5 .99' keyValue='0 1 0 0 2 0 0 0 0 0 1 0'/>
      <PositionInterpolator DEF='smokeScale2' key='0 .5 .5 .99' keyValue='1.5 1.5 1.5 2 2 2 1 1 1 1.5 1.5 1.5'/>
      <ScalarInterpolator DEF='smokeTrans2' key='0 .5 .5 .99' keyValue='.5 1.0 0 .5'/>
      <Transform DEF='SmokeBall2'>
        <Shape>
          <Appearance>
            <Material DEF='SmokeMat2' diffuseColor='0 0 0'/>
          </Appearance>
          <Sphere radius='.5'/>
        </Shape>
      </Transform>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokePos2'/>
      <ROUTE fromField='value_changed' fromNode='smokePos2' toField='set_translation' toNode='SmokeBall2'/>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokeTrans2'/>
      <ROUTE fromField='value_changed' fromNode='smokeTrans2' toField='set_transparency' toNode='SmokeMat2'/>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokeScale2'/>
      <ROUTE fromField='value_changed' fromNode='smokeScale2' toField='set_scale' toNode='SmokeBall2'/>
    </Transform>
    <Transform translation='-.1 0 -.1'>
      <PositionInterpolator DEF='smokePos3' key='0 .25 .25 .99' keyValue='0 1.5 0 0 2 0 0 0 0 0 1.5 0'/>
      <PositionInterpolator DEF='smokeScale3' key='0 .25 .25 .99' keyValue='1.75 1.75 1.75 2 2 2 1 1 1 1.75 1.75 1.75'/>
      <ScalarInterpolator DEF='smokeTrans3' key='0 .25 .25 .99' keyValue='.75 1.0 0 .75'/>
      <Transform DEF='SmokeBall3'>
        <Shape>
          <Appearance>
            <Material DEF='SmokeMat3' diffuseColor='0 0 0'/>
          </Appearance>
          <Sphere radius='.5'/>
        </Shape>
      </Transform>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokePos3'/>
      <ROUTE fromField='value_changed' fromNode='smokePos3' toField='set_translation' toNode='SmokeBall3'/>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokeTrans3'/>
      <ROUTE fromField='value_changed' fromNode='smokeTrans3' toField='set_transparency' toNode='SmokeMat3'/>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokeScale3'/>
      <ROUTE fromField='value_changed' fromNode='smokeScale3' toField='set_scale' toNode='SmokeBall3'/>
    </Transform>
    <Transform translation='.1 0 -.1'>
      <PositionInterpolator DEF='smokePos4' key='0 .75 .75 .99' keyValue='0 .5 0 0 2 0 0 0 0 0 .5 0'/>
      <PositionInterpolator DEF='smokeScale4' key='0 .75 .75 .99' keyValue='1.25 1.25 1.25 2 2 2 1 1 1 1.25 1.25 1.25'/>
      <ScalarInterpolator DEF='smokeTrans4' key='0 .75 .75 .99' keyValue='.25 1.0 0 .25'/>
      <Transform DEF='SmokeBall4'>
        <Shape>
          <Appearance>
            <Material DEF='SmokeMat4' diffuseColor='0 0 0'/>
          </Appearance>
          <Sphere radius='.5'/>
        </Shape>
      </Transform>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokePos4'/>
      <ROUTE fromField='value_changed' fromNode='smokePos4' toField='set_translation' toNode='SmokeBall4'/>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokeTrans4'/>
      <ROUTE fromField='value_changed' fromNode='smokeTrans4' toField='set_transparency' toNode='SmokeMat4'/>
      <ROUTE fromField='fraction_changed' fromNode='smokeClock' toField='set_fraction' toNode='smokeScale4'/>
      <ROUTE fromField='value_changed' fromNode='smokeScale4' toField='set_scale' toNode='SmokeBall4'/>
    </Transform>
  </Scene>
</X3D>