X3D Model Documentation: Smoke

  1  <?xml version="1.0" encoding="UTF-8"?>
  2 
<!DOCTYPE X3D PUBLIC "ISO//Web3D//DTD X3D 3.0//EN" "https://www.web3d.org/specifications/x3d-3.0.dtd">
  3  <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'>
  4       <head>
  5            <meta name='titlecontent='Smoke'/>
  6            <meta name='descriptioncontent='Animated smoke'/>
  7            <meta name='creatorcontent='Michael Martin'/>
  8            <meta name='createdcontent='10 September 2004'/>
  9            <meta name='modifiedcontent='20 October 2019'/>
 10            <meta name='subjectcontent='smoke'/>
 11            <meta name='identifiercontent=' https://www.web3d.org/x3d/content/examples/Savage/Scenarios/TankManeuver/Smoke.x3d '/>
 12            <meta name='generatorcontent='X3D-Edit 3.2, https://www.web3d.org/x3d/tools/X3D-Edit'/>
 13            <meta name='licensecontent='../../license.html'/>
 14       </head>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: SmokeBall, SmokeBall2, SmokeBall3, SmokeBall4, smokeClock, SmokeMat, SmokeMat2, SmokeMat3, SmokeMat4, smokePos, smokePos2, smokePos3, smokePos4, smokeScale, smokeScale2, smokeScale3, smokeScale4, smokeTrans, smokeTrans2, smokeTrans3, smokeTrans4
-->
 15       <Scene>
 16            <WorldInfo title='Smoke'/>
 17 
 18            <Transform translation='.1 0 .1'>
 19 
               <!-- 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'/>
 20 
               <!-- 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'/>
 21 
               <!-- 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'/>
 22 
               <!-- ROUTE information for SmokeBall node:  [from smokePos.value_changed to set_translation ] [from smokeScale.value_changed to set_scale ] -->
               <Transform DEF='SmokeBall'>
 23                      <Shape>
 24                           <Appearance>
 25 
                              <!-- ROUTE information for SmokeMat node:  [from smokeTrans.value_changed to set_transparency ] -->
                              <Material DEF='SmokeMatdiffuseColor='0 0 0'/>
 26                           </Appearance>
 27                           <Sphere radius='.5'/>
 28                      </Shape>
 29                 </Transform>
 30                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokePos' toField='set_fraction'/>
 31                 < ROUTE  fromNode='smokePos' fromField='value_changed' toNode='SmokeBall' toField='set_translation'/>
 32                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokeTrans' toField='set_fraction'/>
 33                 < ROUTE  fromNode='smokeTrans' fromField='value_changed' toNode='SmokeMat' toField='set_transparency'/>
 34                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokeScale' toField='set_fraction'/>
 35                 < ROUTE  fromNode='smokeScale' fromField='value_changed' toNode='SmokeBall' toField='set_scale'/>
 36            </Transform>
 37            <Transform translation='-.1 0 .1'>
 38 
               <!-- 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'/>
 39 
               <!-- 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'/>
 40 
               <!-- 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'/>
 41 
               <!-- ROUTE information for SmokeBall2 node:  [from smokePos2.value_changed to set_translation ] [from smokeScale2.value_changed to set_scale ] -->
               <Transform DEF='SmokeBall2'>
 42                      <Shape>
 43                           <Appearance>
 44 
                              <!-- ROUTE information for SmokeMat2 node:  [from smokeTrans2.value_changed to set_transparency ] -->
                              <Material DEF='SmokeMat2diffuseColor='0 0 0'/>
 45                           </Appearance>
 46                           <Sphere radius='.5'/>
 47                      </Shape>
 48                 </Transform>
 49                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokePos2' toField='set_fraction'/>
 50                 < ROUTE  fromNode='smokePos2' fromField='value_changed' toNode='SmokeBall2' toField='set_translation'/>
 51                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokeTrans2' toField='set_fraction'/>
 52                 < ROUTE  fromNode='smokeTrans2' fromField='value_changed' toNode='SmokeMat2' toField='set_transparency'/>
 53                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokeScale2' toField='set_fraction'/>
 54                 < ROUTE  fromNode='smokeScale2' fromField='value_changed' toNode='SmokeBall2' toField='set_scale'/>
 55            </Transform>
 56            <Transform translation='-.1 0 -.1'>
 57 
               <!-- 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'/>
 58 
               <!-- 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'/>
 59 
               <!-- 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'/>
 60 
               <!-- ROUTE information for SmokeBall3 node:  [from smokePos3.value_changed to set_translation ] [from smokeScale3.value_changed to set_scale ] -->
               <Transform DEF='SmokeBall3'>
 61                      <Shape>
 62                           <Appearance>
 63 
                              <!-- ROUTE information for SmokeMat3 node:  [from smokeTrans3.value_changed to set_transparency ] -->
                              <Material DEF='SmokeMat3diffuseColor='0 0 0'/>
 64                           </Appearance>
 65                           <Sphere radius='.5'/>
 66                      </Shape>
 67                 </Transform>
 68                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokePos3' toField='set_fraction'/>
 69                 < ROUTE  fromNode='smokePos3' fromField='value_changed' toNode='SmokeBall3' toField='set_translation'/>
 70                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokeTrans3' toField='set_fraction'/>
 71                 < ROUTE  fromNode='smokeTrans3' fromField='value_changed' toNode='SmokeMat3' toField='set_transparency'/>
 72                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokeScale3' toField='set_fraction'/>
 73                 < ROUTE  fromNode='smokeScale3' fromField='value_changed' toNode='SmokeBall3' toField='set_scale'/>
 74            </Transform>
 75            <Transform translation='.1 0 -.1'>
 76 
               <!-- 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'/>
 77 
               <!-- 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'/>
 78 
               <!-- 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'/>
 79 
               <!-- ROUTE information for SmokeBall4 node:  [from smokePos4.value_changed to set_translation ] [from smokeScale4.value_changed to set_scale ] -->
               <Transform DEF='SmokeBall4'>
 80                      <Shape>
 81                           <Appearance>
 82 
                              <!-- ROUTE information for SmokeMat4 node:  [from smokeTrans4.value_changed to set_transparency ] -->
                              <Material DEF='SmokeMat4diffuseColor='0 0 0'/>
 83                           </Appearance>
 84                           <Sphere radius='.5'/>
 85                      </Shape>
 86                 </Transform>
 87                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokePos4' toField='set_fraction'/>
 88                 < ROUTE  fromNode='smokePos4' fromField='value_changed' toNode='SmokeBall4' toField='set_translation'/>
 89                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokeTrans4' toField='set_fraction'/>
 90                 < ROUTE  fromNode='smokeTrans4' fromField='value_changed' toNode='SmokeMat4' toField='set_transparency'/>
 91                 < ROUTE  fromNode='smokeClock' fromField='fraction_changed' toNode='smokeScale4' toField='set_fraction'/>
 92                 < ROUTE  fromNode='smokeScale4' fromField='value_changed' toNode='SmokeBall4' toField='set_scale'/>
 93            </Transform>
 94       </Scene>
 95  </X3D>
<!--

<!--
Event Graph ROUTE Table shows event connections.
-->
<!-- to top DEF nodes index: SmokeBall, SmokeBall2, SmokeBall3, SmokeBall4, smokeClock, SmokeMat, SmokeMat2, SmokeMat3, SmokeMat4, smokePos, smokePos2, smokePos3, smokePos4, smokeScale, smokeScale2, smokeScale3, smokeScale4, smokeTrans, smokeTrans2, smokeTrans3, smokeTrans4
-->
X3D Tooltips element index: Appearance, head, Material, meta, PositionInterpolator, ROUTE, ScalarInterpolator, Scene, Shape, Sphere, TimeSensor, Transform, WorldInfo, X3D, plus documentation for accessType definitions, type definitions, XML data types, and field types

Event Graph ROUTE Table with 24 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.

This node has 12 outgoing ROUTEs, which is greater than $maxROUTEdepth=8
smokeClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
smokePos
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
smokePos
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
SmokeBall
Transform
set_translation
SFVec3f
smokeClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
smokeTrans
ScalarInterpolator
set_fraction
SFFloat
then
 
 
 
smokeTrans
ScalarInterpolator
value_changed
SFFloat

ROUTE
event to
(2)
SmokeMat
Material
set_transparency
SFFloat
smokeClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
smokeScale
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
smokeScale
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
SmokeBall
Transform
set_scale
SFVec3f
smokeClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
smokePos2
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
smokePos2
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
SmokeBall2
Transform
set_translation
SFVec3f
smokeClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
smokeTrans2
ScalarInterpolator
set_fraction
SFFloat
then
 
 
 
smokeTrans2
ScalarInterpolator
value_changed
SFFloat

ROUTE
event to
(2)
SmokeMat2
Material
set_transparency
SFFloat
smokeClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
smokeScale2
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
smokeScale2
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
SmokeBall2
Transform
set_scale
SFVec3f
smokeClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
smokePos3
PositionInterpolator
set_fraction
SFFloat
then
 
 
 
smokePos3
PositionInterpolator
value_changed
SFVec3f

ROUTE
event to
(2)
SmokeBall3
Transform
set_translation
SFVec3f
smokeClock
TimeSensor
fraction_changed
SFFloat

ROUTE
event to
(1)
smokeTrans3
ScalarInterpolator
set_fraction
SFFloat
then
 
 
 
smokeTrans3
ScalarInterpolator
value_changed
SFFloat

ROUTE
event to
(2)
SmokeMat3
Material
set_transparency
SFFloat

Additional guidance on X3D animation can be found in the 10-Step Animation Design Process and Event Tracing hint sheets. Have fun with X3D! 😀

-->
<!-- Online at
https://www.web3d.org/x3d/content/examples/Savage/Scenarios/TankManeuver/SmokeIndex.html -->
<!-- Version control at
https://sourceforge.net/p/x3d/code/HEAD/tree/www.web3d.org/x3d/content/examples/Savage/Scenarios/TankManeuver/Smoke.x3d -->

<!-- Color-coding legend: X3D terminology <X3dNode  DEF='idNamefield='value'/> matches XML terminology <XmlElement  DEF='idNameattribute='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. -->